2014-01-31 133 views
2

我想在Code 128条形码中编码字符串“Quinish”。是否可以在Code 128编码中包含扩展的ASCII字符? 。在Code 128条形码中编码扩展的ASCII字符

我在谷歌上做了一些研究,提示它可以使用FNC4,但我没有找到如何做到这一点。如果有人能够用C语言提供解决方案,那将会非常有帮助。

+2

扩展ASCII是一个概念,而不是一个精确定义的东西。请准确指定您的编码。如果你要求一个图书馆来做到这一点,那么这就是主题。 –

+0

嘿大卫感谢您的评论,但我只是想知道我们如何使用FNC4来编码这样的扩展ASCII字符(特殊字符如Ñ)。我不是在寻找库,我已经有编码逻辑编码字符upto 128个ASCII值。 这里是维基引用:http://en.wikipedia.org/wiki/Code_128 – Mayuresh

+3

那么,正如我已经说过的,扩展ASCII是一个概念,而不是一个精确定义的东西。您不能“编码为扩展ASCII”。你需要选择一个实际的编码。 –

回答

5

通过使用特殊的FNC4功能字符,字节值从128到255的“扩展ASCII”字符确实可以在Code 128编码中表示。对于一般用途(在打开的应用程序中),这些字符必须属于ISO-8859-1(Latin1)字符集。

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

在您的示例“Qui侬”中,字符“Ñ”在缺省ISO-8859-1字符集中由字节值209表示,因此它是128 + 81。 ASCII 81解析为“Q”,因此您需要序列FNC4 Q来表示“Ñ”。

这个数据的有效代码128 encodation如下:

[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码符号看起来像这样:

Code 128 containing the word "QuiÑones"

它用的是Online Barcode Generator与下列选项中产生:

Barcode: Code 128 
Contents: Qui^209ones 
Options: parse height=0.5 
+2

FNC4字符类似于Unicode的专用区域码点。代码128没有说明这些字符是什么。作者和读者必须同意他们的意思。通常情况下,您可以选择数字值来对字符进行编码,这与在定义良好的字符编码中相同。 “扩展的ASCII”没有明确定义; “大部分代码页”都不是。无论是使用已建立的字符编码还是进行编码,您仍然可以说出它是什么。 –

+0

关于使用FNC4,不正确。 ISO/IEC 15417§4.3.4.2(d):“FNC4用于表示ISO/IEC 8859-1中规定的扩展字符集(字节值128到255)...如果使用单个FNC4字符,则将值128添加到符号中以下数据字符的ISO/IEC 646值...后续数据字符恢复为标准ISO/IEC 646集。如果使用了两个连续的FNC4字符,则将值128添加到所有后续数据字符的ISO/IEC 646值,直到遇到两个连续的FNC4字符或到达符号的末尾。“ –

+0

关于使用术语”扩展ASCII“,谢谢。我通过放弃对扩展ASCII的随意引用来改进答案,除非直接引用问题并明确指出Latin1字符集是打开应用程序所必需的。 –

相关问题