zxing QR码中文识别乱码解决

在做项目的时候用到zxing开源库进行二维码的识别,一开始被不能识别中文这个问题困扰了很久,网上查阅了很多资料,没有哪篇文章真正解决了问题 。阅读google源代码,今天终于得以解决,和大家分享,搞清楚了不难,具体步骤如下:

 1:下载zxing最新版本,下载地址:http://download.csdn.net/detail/xiaoyanghijk/7165781

找到charp文件夹。

2:进入qrcode 下的encode文件夹,修改Encode.cs下的语句

    internal const System.String DEFAULT_BYTE_MODE_ENCODING = "ISO-8859-1";

  改为  internal const System.String DEFAULT_BYTE_MODE_ENCODING = "UTF-8"; //选择编码模式

3:进入decode文件夹,修改guessEncoding函数,这个函数的目的是猜测编码类型,不用猜了,我直接把它改为return UTF-8,其余一律注释掉。自己编码的,当然知道编码模式。

4 :生成dll

 将dll放入自己的识别文件夹下,调用生成和解码函数就可以实现中、英文的生成和解码。

生成代码:

 String content = textBox2.Text;
            COMMON.ByteMatrix byteMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 350, 350);//图片是350*350大小
           // Bitmap bmap = toBitmap(byteMatrix);
            Bitmap bmap = byteMatrix.ToBitmap();
            pictureBox1.Image = bmap;

 

解码代码:

  
                Bitmap bmap = new Bitmap(Openfile.FileName);
               // int code_length=bmap.le
                LuminanceSource source = new RGBLuminanceSource(bmap, bmap.Width, bmap.Height);
                com.google.zxing.BinaryBitmap bitmap = new com.google.zxing.BinaryBitmap(new COMMON.HybridBinarizer(source));
                Result result;
                result = new MultiFormatReader().decode(bitmap);
                String decodedString = result.Text;
                textBox15.Text = decodedString;

生成界面:

  zxing QR码中文识别乱码解决_第1张图片

 识别界面:

zxing QR码中文识别乱码解决_第2张图片

转载请注明出处:http://write.blog.csdn.net/postedit/23258897

你可能感兴趣的:(学习的,二维码)