【问题标题】:Encoding a string in 128c barcode symbology在 128c 条形码符号系统中编码字符串
【发布时间】:2014-02-02 18:17:05
【问题描述】:

我在将此字符串编码为条形码符号系统 - Code 128 时遇到了一些问题。

要编码的文本: 1021448642241082212700794828592311

使用来自 idautomation.com 的通用编码器 http://www.bcgen.com/fontencoder/

对于 Code 128 的编码文本,我得到以下输出: Í*5LvJ8*r5;ÂoP

但是,在“;Â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 中),那也会有所帮助。

谢谢。

【问题讨论】:

    标签: java barcode


    【解决方案1】:

    Code128 有多种字体可以使用不同的字符来表示条码符号。确保字体和编码逻辑相互匹配。

    我使用了这个http://www.jtbarton.com/Barcodes/Code128.aspx(网站上也有如何编码的示例代码,但你必须从VB翻译它)。该字体适用于所有三种编码(A、B 和 C)。

    【讨论】:

    • 同意,这里还有不同的算法:grandzebu.net/informatique/codbar-en/code128.htm。将其视为一个两步过程:1-创建有效的代码 128 表示(包括开始、校验和、结束等) 2-将序列转换为与 Code-128 的字体表示匹配的字符串。
    • zxing 项目也可能是一个替代方案,虽然我没有用它来创建条形码,该网站说它支持:code.google.com/p/zxing
    • @Durandal 可能是你可以更新链接,不再工作了
    【解决方案2】:

    对不起,太晚了。

    在处理任何子集中的代码 128 的编码时,最好根据数字而非字符来考虑编码。在这个级别上,当您有班次、代码更改、校验和等等与数据混合在一起时,“字符”的整个概念就会丢失。

    但是,这就是正在发生的事情:

    输出中的分号对应“27” 小写o对应“48”,P对应“79”

    “A with Macron”对应于您的“00”序列。这就是为什么你应该在这个编码级别处理数字,而不是字符。

    您希望它如何显示代码为 00 的字符?那将是一个 NULL 空间,两者都不是特别明显。

    您的软件只是以最好的方式渲染它,即通过添加 0x80 使字符“可见”。如果你看一下charmap,你会发现代码0x80确实是带有macron的A。

    编码字符串的其余部分(实际上是全部)对于 setc 编码看起来是正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-16
      • 2017-01-30
      • 1970-01-01
      • 2011-11-20
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多