项目中需要用到Zbar解析二维码,但由于编码的问题,Zbar扫描出的中文信息是乱码。
解决思路很简单:修改源码里 zbar/qrcode/qrdectxt.c 62行开始的转码函数即可(参考这里,但文章的函数用法错了,后面详述)。
因此本文的工作就是(重点参考Zbar二维码解析库编译):安装MinGW(最新的zbar没有VS工程),修改Zbar源码,重新编译LIB。
1. 安装配置MinGW
首先到这里下载MinGW的安装器。整个编译过程需要用到gcc和msys,把安装器的“Basic Setup”里所有包都mark上,此外我还把进阶包里所有与gcc、libiconv有关的包都mark上了(可能有些是用不上的,可以先尝试在msys里编译代码,看错误信息再添加相关包)。
然后就是往“环境变量”里添加MinGW的bin目录,这里学到一招:为了使修改后的环境变量立即生效,在cmd里输入 set PATH=C: 可以强制刷新,由于DOS窗口的环境变量只是系统变量的一个副本,因此set命令不会永久改变系统环境变量。
关于MinGW更详细的配置见这里。