c - 在 Code 128 条码中编码扩展 ASCII 字符

标签 c barcode non-ascii-characters extended-ascii code128

我想在 Code 128 条码中对字符串“QuiÑones”进行编码。是否可以在 Code 128 编码中包含扩展的 ASCII 字符? .

我在 Google 上做了一些研究,表明可以使用 FNC4,但我没有找到具体的操作方法。如果有人能帮助我用 C 语言解决问题,那将是非常有帮助的。

最佳答案

字节值从 128 到 255 的“扩展 ASCII”字符确实可以通过使用特殊的 FNC4 功能字符在 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 符号如下所示:

Code 128 containing the word "QuiÑones"

关于c - 在 Code 128 条码中编码扩展 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21475390/

相关文章:

c - 使用 tpl 通过套接字发送结构以使用 c 进行序列化

android - 如何解决与位置无关的可执行错误

c - printf 浮点值的字符串格式

c - C语言中strcpy的使用

android - 在 Android 中生成/创建条形码

reactjs - 如何通过输入 ReactJS 中的单词进行检测

javascript - Quagga 不定位或解码条形码

javascript - python3 打印函数发出 'ascii' codec can't encode character 错误

python-2.7 - Python : ascii codec can't encode en-dash

c++ - Windows非ASCII文件路径