GS1条码中FNC1字符的实际ASCII值是多少?

2024-03-17

我在维基百科上搜索了很多页面,官方的 GS1 规格,但尚未找到问题的明确答案

GS1 FNC1 字符的实际十六进制/二进制值是多少?

有很多关于如何使用 GS1 标识符、如何使用 ZPL 打印条形码以及如何对 FNC1 进行编码的信息,但我想知道该字符的实际十六进制值。


特殊功能字符(例如 FNC1 到 FNC4)属于“非数据字符”类别,可以在各种条形码符号体系中进行编码,但在解码的数据流中没有任何直接的 ASCII 表示。支持此类字符的每种符号系统都有不同的方案,用于在其内部表示中对它们进行编码,这与任何面向字节的字符数据截然不同。

FNC 字符既可用作标志字符(向读者表明一些特别的东西)以及格式化字符(修改编码数据的含义)。因此,它们不打算在主机系统从基本条形码读取器接收的数据中直接传输,尽管在这两种情况下它们可能对传输的消息产生“影响”。

每个 FNC 字符的通常用途如下:

  • FNC1- 结构化数据标志字符指示 GS1 和 AIM 格式 AND 组分隔符格式化字符等用途。
  • FNC2- 消息追加标志字符用于缓冲单次读取的符号组中的数据。
  • FNC3- 读者编程标志字符用于设备配置目的。
  • FNC4- 扩展 ASCII格式化字符用于对序数 128-255 的字符进行编码。

请注意,它们可能并非全部在某些条形码符号体系中可用,甚至可能以不同的、非典型的或重载的方式指定。

对符号内部数据中的 FNC 字符进行编码是通过编码软件特有的“转义机制”完成的。每个库都有不同的方式来接受输入中的这些非数据字符。例如,要在数据“(01)00312345678906(21)123456789012(30)0144”的典型 GS1 结构化数据角色中使用 FNC1,您可能会看到 FNC1 字符转义为{FNC1}这样输入看起来像{FNC1}010031234567890621123456789012{FNC1}300144.

有些库甚至会使用一组常规或扩展 ASCII 字符作为 FNC 字符的占位符,但这些是任意表示形式,将它们视为这些非数据字符的实际 ASCII 值是错误的。

扫描条形码时,符号的内部数据通常会被解码,然后通过基本通道(例如键盘楔)作为要根据 Latin-1 字符编码进行解释的字节序列传输到主机。 FNC 字符不能以这种方式表示并且被排除在数据流之外,但是它们格式化效果上的数据仍然存在。

例如,大多数符号体系的标准规定,当 FNC1 字符在符合 GS1 应用标识符标准格式的数据中用作字段分隔符时,应将其解码并作为 GS (ASCII 29) 传输。明确指出,格式化效果FNC1 字符用作 GS1 应用标识符分隔符的方法是将 GS 字符放置在可变长度字段的末尾。但在其他角色中(例如当FNC1用于“第一/第二位置”时作为标志字符对于非 GS1 格式的数据)有无格式化效果所携带的数据,因此在解码期间没有 ASCII 表示。

对数据具有格式化效果的特殊功能字符的另一个实例是使用 FNC4 将其范围从 7 位 ASCII 扩展到扩展 ASCII 的符号系统,如这个答案 https://stackoverflow.com/a/30308255/2568535.

一个微妙的技术点是,传输到主机的数据通常带有一个短符号指示符标头,称为“符号标识符”,表示从中读取数据的符号的类型和用法。这通常会因符号数据中存在其他不可见的标志字符而被修改,例如,以指示存在“FNC1 in first”的 GS1 格式数据,或者当 FNC3 出现在符号中的任何位置时指示阅读器编程模式。详细信息是特定于符号系统的。

旁白:除了 FNC 非数据字符之外,条形码符号系统还普遍支持其他非数据字符,这些字符没有直接的 ASCII 表示形式,但会影响整体消息。其中包括宏字符(将消息数据包装在数据字符“信封”中)和 ECI 指示符,这些指示符需要使用超出典型“基本通道”模式的传输协议,但允许使用扩展字符集以及其他增强功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GS1条码中FNC1字符的实际ASCII值是多少? 的相关文章

随机推荐

  • 小程序中的 java.lang.reflect.invocacytargetexception 错误 [已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的应用程
  • 在 mongoose 中使用 mongodb 多键索引方法索引引用数组

    我的架构有一个 ObjectId 数组 它们是对另一个架构的引用 我想要的是使用 mongodb 的多键索引方法来索引这个数组条目 所以给定一个ObjectId中的某些文档的产品目录集合 我可以列出我当前集合中具有给定的所有文档Object
  • 如何防止 VS2010 在每次更新服务引用时创建新绑定?

    我正在使用 C 3 5 和 Visual Studio 2010 中的 WCF 服务开发 Winforms 客户端应用程序 每次我使用 更新服务参考 在 IDE 中 考虑到我已经有一个有效的绑定app config 会生成一个具有相同名称和
  • 通过公共API导出非公共类型

    如果我有几个返回非公共类型的工厂方法和提供此非公共类型变量的配对方法集怎么办 这会导致 NetBeans 中出现标题为警告消息的结果 结果公共 API 将只包含两个配对的方法集 原因是使我的类型层次结构密封 就像 Scala 中的密封类 并
  • 异步更新数据后重绘 UITableView

    我有一个 UITableview 我使用数据异步加载 因此 tableview 可能会显示没有数据 我已经厌倦了 ReloadData 方法 但表视图仍然为空 直到我滚动表视图 突然数据出现 当我将表视图加载为详细视图并在项目之间切换时 会
  • 如何在终端中查看 Heroku 应用程序的当前数据库架构?

    我试图在终端 Mac OS X Lion 中查看我的 Heroku 应用程序架构 并偶然发现了一个可以执行此操作的命令 在终端中 我运行heroku run more db schema rb但它似乎显示较旧的架构版本 我刚刚迁移了 Her
  • FileHelpers:不带引号的 CSV 中的可选字段

    我在用文件助手 http www filehelpers com从 CSV 文件导入数据 问题是 某些版本的 CSV 文件具有比其他版本更多的字段 因此 我已将有时丢失的字段标记为可选 但这似乎不起作用 因为它不仅仅是在字段丢失时忽略 这似
  • Powershell 截断 SQL 查询输出

    我正在从 powershell 命令运行以下查询 不幸的是 该查询在结果字符串的末尾截断或添加了点 我调整了 powershell 的屏幕缓冲区大小 即右键单击 powershell 属性 gt 布局 gt 屏幕缓冲区大小 gt 宽度和高度
  • 当应用程序强制关闭或设备重新启动时,共享首选项会重置数据

    我正在开发一个在其中存储的应用程序username and password in SharedPreferences 一切对我来说都工作正常 存储和检索值 但我发现 当我重新启动设备或应用程序被强制关闭时 存储在SharedPrefere
  • Node.js 如何删除文件中的第一行

    我正在制作简单的 Node js 应用程序 我需要删除文件中的第一行 请问有什么办法可以做到吗 我认为使用 fs write 是可能的 但是如何呢 这是从文件中删除第一行的流版本 由于它使用流 意味着您不需要将整个文件加载到内存中 因此它更
  • Java - 创建具有给定范围的 IntStream,然后使用映射函数随机化每个元素

    因此 我创建了一个 IntStream 为其指定了 1 9 的范围 我希望能够使用 map 函数获取给定范围 1 9 中的每个元素并随机化每个元素 本质上 我想在每次程序运行时以不同的顺序流式传输数字 1 9 我对其他想法持开放态度 但它必
  • Azure 表存储在插入时引发异常:(409) 冲突

    我正在使用 Azure 表存储从 MVC 应用程序记录访问者信息 但有时会引发以下异常 WebException The remote server returned an error 409 Conflict System Net Htt
  • 如何对公共接口背后高度复杂的代码进行单元测试

    我想知道应该如何通过 NUnit 测试此类功能 Public void HighlyComplexCalculationOnAListOfHairyObjects calls 19 private methods totalling 100
  • Laravel 5.2 身份验证不起作用

    正如你们所知 Laravel 5 2 几天前发布了 我正在尝试这个新版本 我在 CLI 上使用以下命令创建了一个新项目 laravel new testapp As per 身份验证快速入门文档 https laravel com docs
  • 如何使用 Javascript 打开新的隐身窗口? (谷歌浏览器)

    我想帮助我的朋友在执行一些鼠标手势 鼠标笔划 Chrome 扩展中的自定义笔划 时在新的隐身窗口中打开网站 Chrome 扩展程序tabs权限可以使用chrome windows create https developer chrome
  • HList 只不过是一种复杂的元组编写方式吗?

    我真的很想找出差异所在 更一般地说 是为了识别不能使用 HList 的规范用例 或者更确切地说 与常规列表相比不会产生任何好处 我知道有 22 个 我相信 TupleN在 Scala 中 而只需要一个 HList 但这不是我感兴趣的概念差异
  • 客户希望网站上有“不可复制的图像”[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 发现此文件读取代码中的错误(C++)

    谁能告诉我为什么这个方法不能编译 void Statistics readFromFile string filename string line ifstream myfile filename if myfile is open whi
  • 从 Qt 中的 pro 文件获取值

    我在 Windows XP 中使用 Qt 4 5 我的 pro 文件有变量VERSION 1 0 现在我需要读取这个变量并获取它的值 1 0 来自源代码 这样我就不必在源代码中维护版本的另一个变量 我刚刚读取了 pro 文件并更新了它 这样
  • GS1条码中FNC1字符的实际ASCII值是多少?

    我在维基百科上搜索了很多页面 官方的 GS1 规格 但尚未找到问题的明确答案 GS1 FNC1 字符的实际十六进制 二进制值是多少 有很多关于如何使用 GS1 标识符 如何使用 ZPL 打印条形码以及如何对 FNC1 进行编码的信息 但我想