我在将此字符串编码为条形码符号系统时遇到了一些麻烦 - Code 128。
要编码的文字: 1021448642241082212700794828592311
使用idautomation.com的通用编码器 http://www.bcgen.com/fontencoder/
我为Code 128的编码文本获得以下输出: Í* 5LvJ8 * R5; AOP的百分比抑制率7 + .I
但是,在“;Âo”中,半冒号和o之间的字符(我们称之为特殊的A) - 不是Code128中使用的扩展字符集的一部分。 (参见http://www.fonts2u.com/code-128.font上的拉丁语补充)
然而,相同的字符串显示有效的条形码 http://www.bcgen.com/linear-barcode-creator.html
如何?
如果我在带有条形码字体的网页上使用特殊A的输出,则特殊的A字符不会显示为条形码(这似乎是正确的,因为特殊的A不是字符集的一部分)
是什么给出的?请帮忙。
我正在使用IDAutomation实用程序将字符串编码为128c符号系统。如果你可以共享代码来进行编码(在java / pyhton / c / perl中)也会有所帮助。
感谢。
答案 0 :(得分:2)
Code128有多种字体可能使用不同的字符来表示条形码符号。确保字体和编码逻辑相互匹配。
我使用了这个http://www.jtbarton.com/Barcodes/Code128.aspx(还有示例代码如何在网站上对其进行编码,但您必须从VB翻译它)。该字体适用于所有三种编码(A,B和C)。
答案 1 :(得分:0)
对不起,这太迟了。
在处理代码128的编码时,在任何子集中,最好以数字而不是字符来考虑该编码。在这个级别上,当您将班次,代码更改,校验和和其他内容与数据混合在一起时,“字符”的整个概念就会丢失。
但是,这是正在发生的事情
输出中的分号对应于“ 27” 小写字母o对应于“ 48”,P对应于“ 79”
“带有Macron的A”对应于您的“ 00”序列。这就是为什么您应该在这种编码级别上处理数字而不是字符。
您希望它如何显示代码为00的字符?那将是NULL的空间,这两个都不是特别可见的。
您的软件只是以最佳方式渲染了该效果,这是通过向其添加0x80来使该字符“可见”。如果您查看charmap,您将看到代码0x80确实是带有宏的A。
对于setc编码,编码字符串的其余部分(实际上是全部)看起来都是正确的。