java - ZXing二维条码解码 : UTF-8 characters not decoded properly

标签 java utf-8 barcode zxing

我正在尝试使用 ZXing 读取 2D 条形码,它大部分工作正常,只是它不能真正识别一些 UTF-8 字符,如 č 和 ć。我正在使用此代码来设置编码:

MultiFormatReader reader = new MultiFormatReader();
Hashtable hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");  
reader.setHints(hints);
result = reader.decode(bitmap);

我做错了什么吗?

编辑:我还尝试调用需要提示的解码重载,但结果是相同的。

最佳答案

看起来我创建位图的方式是错误的。这有效:

MultiFormatReader reader = new MultiFormatReader();

FileInputStream fis = new FileInputStream(filePath);

BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(
    new BufferedImageLuminanceSource(
            ImageIO.read(fis))));

Result result = reader.decode(bitmap);

String originalText = result.getText();
byte[] bytes = originalText.getBytes("ISO-8859-1");
String outputText = new String(bytes, "UTF-8");

关于java - ZXing二维条码解码 : UTF-8 characters not decoded properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30300806/

相关文章:

java - 在处理java响应Ajax中的重音字符时,应该使用哪种unicode UTF-8和UTF-16

iphone - 在 iPhone 中使用 UTF-8 进行编码和解码

javascript - 在 Javascript 中将字符从 ISO-8859-1 转换为 UTF-8 编码时保留字符表示

ios - 如果减少条形码扫描可以注册的元数据对象类型,它会获得更好的性能吗?

java - 如何在android中以编程方式更改 vector 可绘制对象的颜色

java - 解释拉解析器错误消息

java - 使用流更新列表中的单个对象

mysql - 如何使用 mysqladmin 创建一个 utf8 数据库

barcode - 条形码编程入门有什么好的资源吗?

C# WinForm + Barcode Scanner 输入,TextChanged 错误