ZXing Aztec条码UTF-8

问题描述

我尝试创建带有特殊字母(如“ä”)的Aztec条形码。 我试图激活UTF-8,但条形码仍只包含十六进制。 有人知道怎么了吗?

var writer = new BarcodeWriter
{
    Format = BarcodeFormat.AZTEC,Options = new AztecEncodingOptions
    {
        Height = Height,Width = Width,}
};

//Hashtable hints = new Hashtable();
//writer.Options.Hints.Add(EncodeHintType.CHARACTER_SET,"utf-8");

//KeyValuePair<EncodeHintType,object> valuePair = new KeyValuePair<EncodeHintType,object>(EncodeHintType.CHARACTER_SET,"UTF-8");                
//writer.Options.Hints.Add(valuePair);

writer.Options.Hints.Add(EncodeHintType.DISABLE_ECI,true);
writer.Options.Hints.Add(EncodeHintType.CHARACTER_SET,"UTF-8");

var bitmap = writer.Write(value);
Bitmap img = new Bitmap(bitmap);

Barcode

谢谢!

解决方法

“abcanfuiwefbieäääää”是您的输入吗? 结果位图给出“abcanfuiwefbieä䤤¤¤¤”,它是被视为latin1的“abcanfuiwefbiebieääääää”的UTF-8编码。

这里发生的是编码器识别并处理了很好的字符集提示,但是解码器忽略了它,并将其解释为latin1。因此,要获取原始文本,您需要自己将latin1转换为UTF8。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...