在代码128条形码中编码扩展ASCII字符

在代码128条形码中编码扩展ASCII字符,c,barcode,non-ascii-characters,extended-ascii,code128,C,Barcode,Non Ascii Characters,Extended Ascii,Code128,我想将字符串“Quiñones”编码为128码条形码。是否可以在代码128编码中包含扩展ASCII字符 我在谷歌上做了一些研究,认为使用FNC4是可能的,但我没有找到确切的方法。如果有人能帮助我找到C语言的解决方案,那将非常有帮助。字节值从128到255的“扩展ASCII”字符确实可以通过使用特殊的FNC4函数字符在代码128编码中表示。对于一般用途(在开放应用程序中),此类字符必须属于ISO-8859-1(拉丁文1)字符集 单个FNC4字符用作下一个字符到扩展字符集的移位,而两个连续的FNC4

我想将字符串“Quiñones”编码为128码条形码。是否可以在代码128编码中包含扩展ASCII字符

我在谷歌上做了一些研究,认为使用FNC4是可能的,但我没有找到确切的方法。如果有人能帮助我找到C语言的解决方案,那将非常有帮助。

字节值从128到255的“扩展ASCII”字符确实可以通过使用特殊的FNC4函数字符在代码128编码中表示。对于一般用途(在开放应用程序中),此类字符必须属于ISO-8859-1(拉丁文1)字符集

单个FNC4字符用作下一个字符到扩展字符集的移位,而两个连续的FNC4字符用作闩锁。其效果是切换受影响字符的8位ASCII值的高位(基本上是加减128)

在您的示例“Quiñones”中,字符“ñ”由默认ISO-8859-1字符集中的字节值209表示,即128+81。ASCII 81解析为“Q”,因此需要序列
FNC4 Q
来表示“ñ”

此数据的有效代码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

代码128符号如下所示:


扩展ASCII是一个概念,而不是一个精确定义的东西。请准确指定您的编码。如果你要求一个库来做这件事,那就离题了。嘿,大卫,谢谢你的评论,但我只想知道我们如何使用FNC4来编码这样的扩展ASCII字符(特殊字符,如ñ)。我不是在找库,我已经有了编码逻辑,可以将字符编码到128 ASCII值。这里是wiki参考:正如我已经说过的,扩展ASCII是一个概念,而不是一个精确定义的东西。不能“编码为扩展ASCII”。您需要选择实际编码。FNC4字符类似于Unicode的专用区域代码点。代码128没有说明字符是什么。作者和读者必须就他们的意思达成一致。通常,您会选择与定义良好的字符编码相同的数值来编码字符。“扩展ASCII”定义不明确;“大多数代码页”也是如此。无论是使用已建立的字符编码还是编造一个字符编码,您仍然需要说明它是什么。关于FNC4的使用,这是不正确的。ISO/IEC 15417§4.3.4.2(d):“FNC4用于表示扩展字符集(字节值128至255)按照ISO/IEC 8859-1中的规定……如果使用单个FNC4字符,则将值128添加到符号中以下数据字符的ISO/IEC 646值中……后续数据字符恢复为标准ISO/IEC 646集。如果使用两个连续FNC4字符,则将值128添加到所有后续da的ISO/IEC 646值中ta字符,直到遇到另外两个连续的FNC4字符或到达符号的末尾。关于术语“扩展ASCII”的使用,谢谢。我改进了答案,除了直接引用问题外,不再随意引用扩展ASCII,并明确指出开放应用程序需要拉丁字符集。再次感谢。