使用 ISO-8859-1 编码解析 DataMatrix 时出现未知编码错误

Unknown encoding error when parsing DataMatrix with ISO-8859-1 encoding

开发一个 Android 应用程序以使用 Google 的 MLKit 扫描数据矩阵代码,我无法解析包含以 ISO-8859-1 编码编码且包含非 ASCII 的数据的代码字符。

举个例子: DataMatrix failing with ML Kit

val options = BarcodeScannerOptions.Builder()
    .setBarcodeFormats(Barcode.FORMAT_DATA_MATRIX)
    .build()
val scanner = BarcodeScanning.getClient(options)
scanner.process(image).addOnSuccessListener { barcodes ->
  val barcode = barcodes.firstOrNull()
  Log.i(TAG, barcode?.rawValue)
  Log.i(TAG, String(barcode?.rawBytes!!, StandardCharsets.ISO_8859_1))
}

两个日志语句 return 表示“未知编码”(字面意思)的字符串。

我正在使用最新版本的 MLKit 条码扫描库:

implementation 'com.google.mlkit:barcode-scanning:16.1.1

ZXing 可以完成这项工作,但它在识别现实生活时遇到了更多困难,扫描效果不那么完美。

任何想法,任何提示?

条形码图片的问题是条形码周围没有填充,这会return一个空的结果。

在条形码内容周围添加一些填充后,检测到条形码。 .

使用最新版本的 ML Kit 条码扫描库 16.1.2,rawBytes 方法现在 returns QR 码的预期内容,也适用于非 unicode 编码。

implementation 'com.google.mlkit:barcode-scanning:16.1.2'