~^J is how the ä is being rendered. Now as it happens ~ is the last char in the standard ASCII table (char 126 0x7e \167) and ^J is typically used to represent \n 10 0x0A \012 ^J LF Line Feed. Obviously it is a charset issue with chars past the standard ASCII set. As to why? It is not the UTF-8 value for ä (which is 0xC3 0xA4). The OS and output of perl -v might help other monks. Also how are you viewing the file.
I don't have access to any Scandanavian JPEGs but the first thing to check would be that you actually have ä 228 0xe4 in the raw data file. Something quick and dirty like:
perl -ne "m/ä/ and die 'Found'" test.jpg # Win32 perl -ne 'm/ä/ and die "Found"' test.jpg # *nix
If it is not actually in the raw data then you may just have to workaround it (unless you can determine the encoding) - a simple regex s/~^J/ä/g solution will almost certainly be the fastest if dirtiest fix. Perhaps try the HexDump() feature to see if it is an input issue or an output issue. If the input phase is working OK you should see 0xe4 is present.
cheers
tachyon
In reply to Re: IPTC data
by tachyon
in thread IPTC data
by mattihe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |