是否可以在DataMatrix 2D条形码中表示超出ASCII的字符? (Unicode的?)

时间:2014-01-23 14:33:18

标签: unicode ascii barcode barcode-printing datamatrix

The DataMatrix article on Wikipedia提到它默认只支持ASCII。它还提到了Base256编码的特殊模式,它应该能够表示任意字节值。

然而,我到目前为止尝试的所有条形码生成器库都支持以字符串形式输入数据,并显示ASCII以外的字符(Onbarcode和Barcodelib)的错误。如何输入Base256模式所需的byte []也无法实现。

是否有支持Base256模式的条形码生成器库? (最好是有支持的商业图书馆)

在扫描数据后将unicode字符串转换为Base64并从base64解码将是一种方法,但还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

但有可能,它有一些陷阱: 1)它取决于您编写应用程序的语言(编程语言中不同的DM库有不同的绑定。 例如,* nix相关环境中有相当常见的库(Maemo / MeeGo / Tizen上的几乎所有条形码扫描器/生成器,一些WinPhone应用程序,KDE物品,等等,使用它)称为[libdmtx] [1]。到目前为止,正如我测试的那样,对包含unicode的消息进行编码和解码相当不错,但它没有正确标记编码消息(“嘿,其他读者,这里是unicode!”),所以,其他库,如[ZXing] [2],就像许多专有扫描程序一样,将unicode消息解码为ASCII。

到目前为止,正如我在[ZXing] [2]作者中所讨论的那样,正确的标记可能是一个ECI段(0d241字节作为第一个码字,后跟“0d26”字节(对于UTF-8))。虽然,这是理论上的解决方案,基于这样的QR码并且没有以任何方式为DataMatrix标准化(既没有[libdmtx] [1]也没有[ZXing] [2],还不支持编码

所以,TL; DR:如果你计划在你正在编写的应用程序之间使用生成的代码(带有unicode消息),你可以自由地使用[libdmtx] [1]进行编码和解码它会工作正常:)如果没有 - 尝试在您的语言上寻找[zxing] [2]端口(并确保该端口支持编码)。

1:github.com/dmtx/libdmtx

2:github.com/zxing/zxing