我想在 Code 128 条形码中对字符串“QuiÑones”进行编码。是否可以在 Code 128 编码中包含扩展的 ASCII 字符?.
我在谷歌上做了一些研究,表明使用 FNC4 是可能的,但我没有找到确切的方法。如果有人可以帮助我解决 C 语言的问题,那将是非常有帮助的。
我想在 Code 128 条形码中对字符串“QuiÑones”进行编码。是否可以在 Code 128 编码中包含扩展的 ASCII 字符?.
我在谷歌上做了一些研究,表明使用 FNC4 是可能的,但我没有找到确切的方法。如果有人可以帮助我解决 C 语言的问题,那将是非常有帮助的。
通过使用特殊的 FNC4 功能字符,字节值从 128 到 255 的“扩展 ASCII”字符确实可以在 Code 128 编码中表示。对于一般用途(在开放应用程序中),此类字符必须属于 ISO-8859-1 (Latin1) 字符集。
单个 FNC4 字符充当下一个字符到扩展字符集的转换,而两个连续的 FNC4 字符充当锁存器。效果是切换受影响字符的 8 位 ASCII 值的高位(基本上是加减 128)。
在您的示例“QuiÑones”中,字符“Ñ”由默认 ISO-8859-1 字符集中的字节值 209 表示,即 128+81。ASCII 81 解析为“Q”,因此您需要序列FNC4 Q
表示“Ñ”。
该数据的有效 Code 128 编码如下:
[104/START-B] [49/Q] [85/u] [73/i] [100/FNC4] [49/Q] [79/o] [78/n] [69/e] [83/s] [93/check-digit] [106/STOP]
一些条码应用程序和库将为您执行基于 FNC4 的扩展字符编码,如下例所示。大多数人不这样做,但这些应该允许您直接指定 FNC4 字符,以便您可以使用上述技术手动驱动该过程,例如:Qui{FNC4}Qones
Code 128 符号如下所示: