Hi tests: Ok: ./iec16022 -f png -o /tmp/ttt.png "Ostern_2009" [..] ./iec16022 -f png -o /tmp/ttt.png "er/privat/2009/Ostern_2009"
Broken:
./iec16022 -f png -o /tmp/ttt.png "der/privat/2009/Ostern_2009"
-> der/privat/2009/Ostern^20
./iec16022 -f png -o /tmp/ttt.png "lder/privat/2009/Ostern_2009"
-> lder/privat/2009/Ostern^20
even more strange:
./iec16022 -f png -o /tmp/ttt.png
"der/privat/2009/Ostern_2009der/privat/2009/Ostern_2009"
i-> der/privat/2009/Ostern^2009der/privat/2009/Ostern^20
40* "_" get encoded correctly.
"a_b_c_ ... _y_z_" get encoded correctly.
"lder/privat/2009/Ostern_2009" -> lder/privat/2009/Ostern^20
"aaaa/aaaaaa/aaaa/aaaaaa_aaaa" -> aaaa/aaaaaa/aaaa/aaaaaa^aaaa
"ZZZZ/ZZZZZZ/ZZZZ/ZZZZZZ_ZZZZ" -> no, not what I expected :) : ZZZZ:[Z/[Z/[[_[
I don't know really the algo, nor have I really looked at the code, but I
think, this looks like integer overflows while counting ascii code together
or something like that in combination with the way the pixel gets placed.
Let's take "@" (ascii 64 so easy to count)
@@@@@@@@@@@@@@@@@@@@@@@@@@_ -> @@
@@@@@@@@@@@@@@@@@@@@@@@@@_ -> @
@@@@@@@@@@@@@@@@@@@@@@@@_ ->
@@@@@@@@@@@@@@@@@@@@@@@_ -> @@@
@@@@@@@@@@@@@@@@@@@@@@_ -> @@
@@@@@@@@@@@@@@@@@@@@@_ -> @
@@@@@@@@@@@@@@@@@@@@_ ->
@@@@@@@@@@@@@@@@@@@_ -> @@@
..
@@@@@@@@@_ -> @
@@@@@@@@_ ->
but:
@@@@@@@_ -> @@@@@@@_
@@@@@@_ -> @@@@@@_
@@@@@_ -> @@@@@_
@@@@_ -> @@@@_
so, 7*64 + 95 is ok
8*64 + 95 is NULL
n*4*64 + 95 is NULL
1*64+n*4*64 + 95 is 64
2*64+n*4*64 + 95 is 64 64
2*64+n*4*64 + 95 is 64 64 64
@@@@@@@_____ -> @@@@@@@_____ is going to get encoded correctly
what ever happens here :-)
Perhaps someone could code a little programm around
http://sourceforge.net/projects/iec16022sharp/
or port that to C ...
Seems I have to build small tiny urls with as few bytes as possible :-/
btw. "dddP _" (same sum as "@@@@@@@@_" gets encoded correctly)
--
Hubertus Krogmann
hk @ hkit . de
signature.asc
Description: PGP signature

