Zbar has a problem, for the Chinese two-dimensional code support often appear garbled. Zbar default Support Shif-jis, UTF-8, iso8859-1, but do not support GB18030, and many of the generated two-dimensional code is GB18030 (or GBK, GB2312), so the Zbar decoded out of the direct garbled
This change is actually very simple, only need to modify a file on it, see the following code.
Zbar/qrcode/qrdectxt.c objective-c
int Qr_code_data_list_extract_text (const qr_code_data_list *_qrlist, zbar_image_scanner_t *ISCN, zbar_image_t *img) { iconv_t SJIS_CD; iconv_t UTF8_CD ; iconv_t latin1_ cd; Const qr_code_data *qrdata; int Nqrdata; unsigned char *mark; int ntext; int i; qrdata = _qrlist-> qrdata; nqrdata = _qrlist-> nqrdata; mark = (unsigned char *) calloc (nqrdata, sizeof (*mark)); ntext = 0; /*this is the encoding of the standard says is the default.*///focus here, let's not iso8859-1, just change to GB18030.  &N Bsp Latin1_cd=iconv_open ("UTF-8", "iso8859-1");Latin1_cd=iconv_open ("UTF-8", "GB18030");/*but This one is often used, as well.*/SJIS_CD = Iconv_open ("UTF-8", "Sjis"); /*this is trivial conversion just to check validity without extra code.*/utf8_cd |