ZBar upstream considers that the output should be done in utf-8. Yet, it has a limited support for charset conversions, supporting "UTF-8", "ISO8859-1", "SJIS" and "BIG-5".
Its decoding logic tries to detect the original charset and do the conversion. Sometimes, it may guess things wrong, though. Due to that, ZBar also supports a raw mode, where the charset conversion is disabled: $ gpg --export 5EA01078| ascii85| head -10 > orig && cat orig | qrencode -8 -o key.png && ./zbarimg/zbarimg --oneshot --raw key.png >parsed && diff -s orig parsed scanned 1 barcode symbols from 1 images in 0.05 seconds Files orig and parsed are identical So, if the decoding is not converting things right, you can simply use -raw mode and call "iconv" utility by hand, in order to manually do the charset conversion manually. Thanks, Mauro