什么是 Code 39?

简介: Code 39是1974年由Intermec开发的字母数字条形码,支持43个字符,广泛用于汽车、医疗、国防等领域。分Regular和Full ASCII两种,后者可编码全部128个ASCII字符。结构简单,自校验强,但密度较低。可通过HCreateLabelView轻松生成,适用于非零售场景。

一、Code 39简介

Code 39 由 Intermec 于 1974 年开发,是第一个同时使用字母和数字的条形码。它是一种离散的可变长度条形码符号系统,也称为 Code 3 of 9、Alpha39、Type 39、Code 3/9、USD-3 和 USS Code 39。
由于 Code 39 条形码总共只能编码 39 个字符,因此得名。但是,最新版本最多可以编码 43 个字符。它由数字 (0 到 9) 、大写字母 (A 到 Z) 和一些特殊字符 (-, ., $、/、+、% 和空格) 组成。对于 start 和 stop 分隔符,使用附加字符 '*'。
典型的 Code 39 条形码如下所示:
ScreenShot_2025-12-31_175719_902.png

由于Code 39 不包含校验位,因此被视为自检,因为单个打印缺陷无法将一个字符转置为另一个有效字符。

Code 39 符号是使用最广泛的条形码类型之一。几乎每个条形码编码/解码设备都可以对其进行编码或解码。

尽管在许多应用程序中使用,但 Code 39 确实存在一些缺点。它是一种低密度条形码,不如 Code 93 或 Code 128 等条形码紧凑。因此,对于需要包含大量信息的非常小的物品或商品来说,它不是一个好的选择。

二、Code 39 - Regular
Code 39 在 ISO/IEC 16388 信息技术 - 自动识别和数据捕获技术 - Code 39 条形码符号规范中定义。
1、符号结构
该符号由以下元素组成:

开始的静音区
起始字符(通常为星号 [])
表示数据的一对或多对符号字符(包括可选的校验位)
停止字符(通常为星号 [
])
结尾的静音区
分隔元件内字符的字符间空格(一个模块宽)
每个 Code 39 - Regular 字符由 9 个元素表示:5 个条形和 4 个空格,其中 3 个宽和 6 个窄。(名称“Code 39”最初是“Code 3 of 9”,其来源是每个 Code 39 字符的 9 个元素中有 3 个始终是宽的。

Code 39 开始和结束字符用于条形码消息的开头和结尾,以向条形码阅读器发出已扫描 Code 39 条形码的信号。此字符通常指定为星号,但您可以选择完全不包含开始和终止字符,或者选择让数据源指定开始字符和/或终止字符。开始字符和终止字符不会作为条形码的一部分传输,也不会包含在任何校验位计算中。

2、字符集
此符号系统支持以下字母数字字符:

所有数字 (0-9)
全部大写字母 (A-Z)
以下符号:
百分号 (%)
加号 (+)
美元符号 ($)
斜杠标记 (/)
句点 (.)
连字符 (-)
Space 字符
三、Code 39 - Full ASCII
Code 39 - 完整 ASCII 符号系统是原始 Code 39 (Code 39 - Regular) 符号系统的扩展,支持对所有 128 个 ASCII 字符进行编码。用于扫描条形码的条形码阅读器必须配置为执行全 ASCII 字符转换。

Code 39 在 ISO/IEC 16388 信息技术 - 自动识别和数据捕获技术 - Code 39 条形码符号规范中定义。

1、符号结构
该符号由以下元素组成:

领先的静音区
起始字符(通常为星号 [])
表示数据的一对或多对符号字符(包括可选的校验位)
停止字符(通常为星号 [
])
尾随静音区
分隔元件内字符的字符间空格(一个模块宽)
每个 Code 39 - Full ASCII 数据字符由 9 个元素表示:5 个条形和 4 个空格,其中 3 个是宽的,6 个是窄的。

Code 39 开始和结束字符用于条形码消息的开头和结尾,以向条形码阅读器发出已扫描 Code 39 条形码的信号。此字符通常指定为星号,但您可以选择完全不包含开始和终止字符,或者选择让数据源指定开始字符和/或终止字符。开始字符和终止字符不会作为条形码的一部分传输,也不会包含在任何校验位计算中。

2、字符集
Code 39 - Regular 和 Code 39 - Full ASCII 支持相同的 43 个字符集以及相同的开始和终止字符。但是,Code 39 - Full ASCII 使用 43 个字符集中的特殊双字符组合,以允许表示所有 128 个 ASCII 字符。换句话说,您可以将任何 ASCII 标准(非扩展)字符和 ASCII 控制字符编码为条形码。

四、Code 39 在哪里使用?
Code 39 主要用于非零售环境。它用于汽车行业,因此也被称为汽车行业条形码。健康行业条形码委员会 (HIBCC) 和美国国防部也使用它。

行业应用
汽车
制造业
政府
后勤
医疗
邮政
国防

五、如何在HCreateLabelView中创建Code 39
1、在条码选择器中选择code39码
ScreenShot_2025-12-31_135321_463.png

2、配置code39码的条码高度、x尺寸
用户可以根据标签尺寸,设置好对应的x尺寸和条码高度
ScreenShot_2025-12-31_135505_108.png

3、打印或者导出code39码
ScreenShot_2025-12-31_135620_017.png

4、打印或者导出可变数据code39码
HCreateLabelView提供了可变数据打印导出功能,用户可以根据序列号、随机码、用户自有表格或者数据库数据连接打印。
ScreenShot_2025-12-31_135716_080.png

相关文章
|
敏捷开发 Dubbo Java
需求开发人日评估
随着敏捷开发在国内的风靡,越来越多的团队开始推行敏捷开发,这其中有一个关键事项就是:工时的人日评估。简单来说就是:项目经理会让开发人员自己评估自己负责的模块大概需要的开发周期。 人日,即按照1人几天完成,如1/人日:表示这个需求需要1个人1天完成,如果有2个人一起做,可能就是0.5天(需求开发一般1+1 < 2,因为有代码合并的兼容性要处理)。
2005 1
|
10月前
|
SQL 人工智能 供应链
什么是GS1-DataBar码?
GS1 DataBar是由GS1推出的紧凑型一维条码,适用于小型商品、生鲜食品、医药产品等空间受限场景。相比传统UPC/EAN码更省空间,可编码GTIN及批次、有效期、序列号等扩展信息,支持全球追溯与POS扫描,广泛应用于零售、医疗、冷链等领域。通过HCreateLabelView软件可便捷生成含可变数据的DataBar标签,支持多种数据源连接与打印方式。
754 0
|
11月前
|
数据采集 人工智能 运维
AgentRun 实战:快速构建 AI 舆情实时分析专家
搭建“舆情分析专家”,函数计算 AgentRun 快速实现从数据采集到报告生成全自动化 Agent。
2075 57
|
10月前
|
人工智能 JSON 搜索推荐
如何创建GS1Digital Link产品全生命周期管理二维码
GS1 Digital Link是GS1推出的创新标准,将传统条码(如GTIN)升级为可联网的结构化URL二维码,支持GTIN、批次、序列号等信息编码。扫码即可跳转至官网、溯源平台或获取JSON/RDF数据,实现产品全生命周期数字化管理与多场景智能响应。
1035 2
|
10月前
|
人工智能 供应链 数据可视化
货运SSCC标签编码
SSCC标签是GS1标准的18位全球唯一编码,用于标识托盘、集装箱等运输单元,支持GS1-128条码,实现货运追踪、自动化分拣与供应链可视化,广泛应用于跨境物流与数字化供应链管理。
1930 3
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
1535 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
存储 开发框架 Devops
eino — 基于go语言的大模型应用开发框架(一)
Eino 是一个受开源社区优秀LLM应用开发框架(如LangChain和LlamaIndex)启发的Go语言框架,强调简洁性、可扩展性和可靠性。它提供了易于复用的组件、强大的编排框架、简洁明了的API、最佳实践集合及实用的DevOps工具,支持快速构建和部署LLM应用。Eino不仅兼容多种模型库(如OpenAI、Ollama、Ark),还提供详细的官方文档和活跃的社区支持,便于开发者上手使用。
3429 8
|
PHP
全新uniapp小说漫画APP小说源码/会员阅读/月票功能
价值980的uniapp小说漫画APP小说源码/会员阅读/月票功能
1018 20
|
计算机视觉 Python
PIL图像转换为Numpy数组:技术与案例详解
本文介绍了如何将PIL图像转换为Numpy数组,以便利用Numpy进行数学运算和向量化操作。首先简要介绍了PIL和Numpy的基本功能,然后详细说明了转换过程,包括导入库、打开图像文件、使用`np.array()`或`np.asarray()`函数进行转换,并通过打印数组形状验证转换结果。最后,通过裁剪、旋转和缩放等案例展示了转换后的应用,以及如何将Numpy数组转换回PIL图像。此外,还介绍了处理base64编码图像的完整流程。
923 4