DataMatrix是否支持UTF8或ISO-8859-2?

时间:2012-05-22 20:12:35

标签: java barcode barcode4j

我对Barcode4JDataMatrix代有问题的ISO-8859-2字符有疑问。
下面从命令行使用barcode4j(版本2.1.0)。正如您可以看到我使用消息"żaba"时出现错误Message contains characters outside ISO-8859-1 encoding. DataMatrix规范是否仅支持ISO-8859-1或Barcode4J中缺少某些内容?

java -cp build/barcode4j.jar:lib/avalon-framework-4.2.0.jar:lib/commons-cli-1.0.jar org.krysalis.barcode4j.cli.Main -s datamatrix "żaba"                           
Exception in thread "main" java.lang.IllegalArgumentException: Message contains characters outside ISO-8859-1 encoding.
 at org.krysalis.barcode4j.impl.datamatrix.DataMatrixHighLevelEncoder$EncoderContext.<init>(DataMatrixHighLevelEncoder.java:199)
 at org.krysalis.barcode4j.impl.datamatrix.DataMatrixHighLevelEncoder.createEncoderContext(DataMatrixHighLevelEncoder.java:171)
 at org.krysalis.barcode4j.impl.datamatrix.DataMatrixHighLevelEncoder.encodeHighLevel(DataMatrixHighLevelEncoder.java:119)
 at org.krysalis.barcode4j.impl.datamatrix.DataMatrixLogicImpl.generateBarcodeLogic(DataMatrixLogicImpl.java:50)
 at org.krysalis.barcode4j.impl.datamatrix.DataMatrixBean.generateBarcode(DataMatrixBean.java:128)
 at org.krysalis.barcode4j.impl.ConfigurableBarcodeGenerator.generateBarcode(ConfigurableBarcodeGenerator.java:174)
 at org.krysalis.barcode4j.cli.Main.handleCommandLine(Main.java:164)
 at org.krysalis.barcode4j.cli.Main.main(Main.java:86)

1 个答案:

答案 0 :(得分:1)

如[{3}}所述,Barcode4J目前仅支持DataMatrix规范(ISO-8859-1)定义的默认字符集。尚未为DataMatrix实现对ECI的支持。但是,您可以通过将字节流编码为RFC 2397数据URL来编码二进制消息。该字节流可以是使用UTF-8编码的字符串。缺点:读者可能无法正确解释数据。