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