Zxing中文乱码的简单解决办法

网上的解决办法都是更改源码来实现,实际上看源码就知道如果在encoder的时候,如果添加了编码,就会用编码来替代默认的编码。

 public static Bitmap ContentToQRBitmap(string content, int size)
        {
            Hashtable hints = new Hashtable();
       
            hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
      
            ByteMatrix matrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, size, size,hints);
            int width = matrix.Width;
            int height = matrix.Height;
           
            Bitmap bmap = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    bmap.SetPixel(x, y, matrix.get_Renamed(x, y) != -1 ? ColorTranslator.FromHtml("0xFF000000") : ColorTranslator.FromHtml("0xFFFFFFFF"));
                }
            }
            return bmap;
        }

其中,hints的传入是关键,不同版本的hints有不同的格式,有的是hashtable,有的是Dictionary.看你用的版本。我的版本是zxing 2.0

posted @ 2013-06-21 15:25  飞翔的天空  阅读(6742)  评论(1编辑  收藏  举报