什么是Code128条形码?

相信大家看到这个都不陌生吧

1、前言

条形码种类很多,常见的大概有二十多种码制,其中包括:
Code39码(标准39码)、Codabar码(库德巴码)、Code25码(标准25码)、ITF25码(交叉25码)、Matrix25码(矩阵25码)、UPC-A码、UPC-E码、EAN-13码(EAN-13国际商品条码)、EAN-8码(EAN-8国际商品条码)、中国邮政码(矩阵25码的一种变体)、Code-B码、MSI码、、Code11码、Code93码、ISBN码、ISSN码、Code128码(Code128码,包括EAN128码)、Code39EMS(EMS专用的39码)等一维条码和PDF417等二维条码。

2、简介

2.1、CODE128码

CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用,CODE128码是应用最广泛的条码码制之一。
CODE128码是1981年引入的一种高密度条码,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其中包含了数字、字母和符号字符。

2.2、特点

●可表示高密度数据和字符串;
●每个字符由3个条、3个空、11个单元构成,字符串可变长;
●符号内含校验码;
●有三种不同的版本:A(数字、大写字母、控制字符)B(数字、大小字母、字符)C(双位数字):

  CODE128A:标准数字和大写字母,控制符,特殊字符;
  CODE128B:标准数字和大写字母,小写字母,特殊字符;
  CODE128C:[00]-[99]的数字对集合,共100个;
●可用128个字符分别在A、B或C三个字符串集合中。

3、如何看懂Code128条形码

重点来了!!!

从上图中可观察到:

从左往右是黑白相间的条形码,黑的叫“条”(B),白的叫“空”(S)。
如果你仔细看,条和空都有4种不同的宽度。我们将它从细到粗赋予1、2、3、4这几个值。
然后我们开始按照粗细的值来阅读条码、结果如下:
211232 | 112232 | 131123 | 331121 | 241112 | 214121 | 112232 | 311123 | 2331112

注意这个结果是黑白相间的。别只顾着读“条”忘了都空。这边总共有55位。

Code128码有一个头、一个校验、一个尾。
尾总是2331112,这代表Code128已经结束。其余的部分是6位为一个块,包括头。
头有3种:A)211412 B)211214 C)211232 。这分别表示此Code128是什么类型的。(ABC其中一种)

我们将我们读出来的码,去掉头和尾,重新分一次块:
112232 | 131123 | 331121 | 241112 | 214121 | 112232 | 311123
正好是6位为一块。其中最后一个块(除去尾段的最后一个块)是校验位,用于检查该条形码是否被正确编码。

然后查Code 128字符表,对应各个编号表示的是什么。
我们这个是211232开头,是Code128C型。C型码是纯数字的,每个块对应2位数字。
查表可得 12 34 56 78 90 12。

211214 | 123221 | 223211 | 221132 | 132212 | 2331114
128 B型 1 2 3 校验码 尾

有了这些知识,我们就可以尝试去写一个程序去生成条形码和识别条形码。
其实生成是比较简单的,而识别就比较麻烦了。通常超市是使用条码枪,通过光学原理来识别的,因为黑白条纹的反光特性不一样。

附:
Code128 字符表:
可以看出从0-63这前64个字符中A类和B类是一样的。
其中有些控制字符,比如CodeA表示此字段下一个个块临时使用Code128A的字符表中的字符。
还有一些其他的,不是很常见,有兴趣的朋友可以参考GBT 15425-2002 EAN UCC系统 128条码 标准

注:ABC分别为128A类,128B类,128C类的字符表。有些B类的字符为空表示和A类的一样。

  1     B,S,B,S,B,S// A    B    C
2 2,1,2,2,2,2,// sp 00
3 2,2,2,1,2,2,// ! 01
4 2,2,2,2,2,1,// " 02
5 1,2,1,2,2,3,// # 03
6 1,2,1,3,2,2,// $ 04
7 1,3,1,2,2,2,// % 05
8 1,2,2,2,1,3,// & 06
9 1,2,2,3,1,2,// ... 07
10 1,3,2,2,1,2,// ( 08
11 2,2,1,2,1,3,// ) 09
12 2,2,1,3,1,2,// * 10
13 2,3,1,2,1,2,// + 11
14 1,1,2,2,3,2,// , 12
15 1,2,2,1,3,2,// - 13
16 1,2,2,2,3,1,// . 14
17 1,1,3,2,2,2,// / 15
18 1,2,3,1,2,2,// 0 16
19 1,2,3,2,2,1,// 1 17
20 2,2,3,2,1,1,// 2 18
21 2,2,1,1,3,2,// 3 19
22 2,2,1,2,3,1,// 4 20
23 2,1,3,2,1,2,// 5 21
24 2,2,3,1,1,2,// 6 22
25 3,1,2,1,3,1,// 7 23
26 3,1,1,2,2,2,// 8 24
27 3,2,1,1,2,2,// 9 25
28 3,2,1,2,2,1,// : 26
29 3,1,2,2,1,2,// ; 27
30 3,2,2,1,1,2,// < 28
31 3,2,2,2,1,1,// = 29
32 2,1,2,1,2,3,// > 30
33 2,1,2,3,2,1,// ? 31
34 2,3,2,1,2,1,// @ 32
35 1,1,1,3,2,3,// A 33
36 1,3,1,1,2,3,// B 34
37 1,3,1,3,2,1,// C 35
38 1,1,2,3,1,3,// D 36
39 1,3,2,1,1,3,// E 37
40 1,3,2,3,1,1,// F 38
41 2,1,1,3,1,3,// G 39
42 2,3,1,1,1,3,// H 40
43 2,3,1,3,1,1,// I 41
44 1,1,2,1,3,3,// J 42
45 1,1,2,3,3,1,// K 43
46 1,3,2,1,3,1,// L 44
47 1,1,3,1,2,3,// M 45
48 1,1,3,3,2,1,// N 46
49 1,3,3,1,2,1,// O 47
50 3,1,3,1,2,1,// P 48
51 2,1,1,3,3,1,// Q 49
52 2,3,1,1,3,1,// R 50
53 2,1,3,1,1,3,// S 51
54 2,1,3,3,1,1,// T 52
55 2,1,3,1,3,1,// U 53
56 3,1,1,1,2,3,// V 54
57 3,1,1,3,2,1,// W 55
58 3,3,1,1,2,1,// X 56
59 3,1,2,1,1,3,// Y 57
60 3,1,2,3,1,1,// Z 58
61 3,3,2,1,1,1,// [ 59
62 3,1,3,1,1,1,// \ 60
63 2,2,1,4,1,1,// ] 61
64 4,3,1,1,1,1,// ^ 62
65 1,1,1,2,2,4,// _ 63
66 1,1,1,4,2,2,// NUL ' 64
67 1,2,1,1,2,4,// SOH a 65
68 1,2,1,4,2,1,// STX b 66
69 1,4,1,1,2,2,// ETX c 67
70 1,4,1,2,2,1,// EOT d 68
71 1,1,2,2,1,4,// ENQ e 69
72 1,1,2,4,1,2,// ACK f 70
73 1,2,2,1,1,4,// BEL g 71
74 1,2,2,4,1,1,// BS h 72
75 1,4,2,1,1,2,// HT i 73
76 1,4,2,2,1,1,// LF j 74
77 2,4,1,2,1,1,// VT k 75
78 2,2,1,1,1,4,// FF l 76
79 4,1,3,1,1,1,// CR m 77
80 2,4,1,1,1,2,// SO n 78
81 1,3,4,1,1,1,// SI o 79
82 1,1,1,2,4,2,// DLE p 80
83 1,2,1,1,4,2,// DC1 q 81
84 1,2,1,2,4,1,// DC2 r 82
85 1,1,4,2,1,2,// DC3 s 83
86 1,2,4,1,1,2,// DC4 t 84
87 1,2,4,2,1,1,// NAK u 85
88 4,1,1,2,1,2,// SYN v 86
89 4,2,1,1,1,2,// ETB w 87
90 4,2,1,2,1,1,// CAN x 88
91 2,1,2,1,3,1,// EM y 89
92 2,1,4,1,2,1,// SUB z 90
93 4,1,2,1,2,1,// ESC { 91
94 1,1,1,1,4,3,// FS | 92
95 1,1,1,3,4,1,// GS } 93
96 1,3,1,1,4,1,// RS ~ 94
97 1,1,4,1,1,3,// US DEL 95
98 1,1,4,3,1,1,// FNC3 FNC3 96
99 4,1,1,1,1,3,// FNC2 FNC2 97
100 4,1,1,3,1,1,// SHIFT SHIFT 98
101 1,1,3,1,4,1,// CodeC CodeC 99
102 1,1,4,1,3,1,// CodeB FNC4 CodeB
103 3,1,1,1,4,1,// FNC4 CodeA CodeA
104 4,1,1,1,3,1,// FNC1 FNC1 FNC1
105 2,1,1,4,1,2,// StartA
106 2,1,1,2,1,4,// StartB
107 2,1,1,2,3,2,// StartC
108 2,3,3,1,1,1,2,// Stop

Over...

参考:

1、 Code128一维条码中A码、B码、C码的区别

2、 如何看懂Code128条形码

5分钟看懂Code128条形码的更多相关文章

  1. 教你看懂Code128条形码

    首     页 条码控件 条码技术 条码新闻 合作伙伴 联系我们 常见问题 电话:010-84827961 当前位置:条形码控件网 > 条形码控件技术文章 > >正文   教你看懂C ...

  2. 如何看懂Code128条形码

    条形码就是我们看到的商品上有的那些竖条条. 要不是项目上用到这个或许我一辈子也不会对那个感兴趣. 条形码其实是分成很多类的,虽然他们看起来都差不多…… 常见的条形码的码制被称为39码.128码.417 ...

  3. [转帖]10分钟看懂Docker和K8S

    10分钟看懂Docker和K8S https://zhuanlan.zhihu.com/p/53260098 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司. 这 ...

  4. 十分钟看懂AES加密

    十分钟看懂AES加密算法 今天看了Moserware的<A Stick Figure Guide to the Advanced Encryption Standard(AES)>收获了不 ...

  5. 10分钟看懂Docker和K8S

    本文来源:鲜枣课堂 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫"dotCloud"的公司. 这家公司主要提供基于PaaS的云计算技术服务.具体来说,是和LXC有关的 ...

  6. 十分钟看懂,未来Web前端开发最新趋势

    首先,展望未来趋势我们就要弄懂过去的一年,也就是18年,web前端开发的重要新闻.重要事件和JavaScript的各种流行框架.模式发展趋势. 我们来快速回顾一下. NPM热门前端框架下载 先来看最热 ...

  7. 干货满满!10分钟看懂Docker和K8S(转)

    2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司. 这家公司主要提供基于PaaS的云计算技术服务.具体来说,是和LXC有关的容器技术. LXC,就是Linux容器虚 ...

  8. 干货满满!10分钟看懂Docker和K8S

    2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司. 这家公司主要提供基于PaaS的云计算技术服务.具体来说,是和LXC有关的容器技术. LXC,就是Linux容器虚 ...

  9. 10 分钟看懂 Docker 和 K8S!

    2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫"dotCloud"的公司. 这家公司主要提供基于PaaS的云计算技术服务.具体来说,是和LXC有关的容器技术. LXC, ...

随机推荐

  1. layui表格数据统计

    //执行一个 table 实例 table.render({ elem: '#demo' ,height: 420 ,url: '/demo/table/user/' //数据接口 ,title: ' ...

  2. Markdown里常用的HTML元素

    转义:\ 换行:<br/> 红色文字:<font color=#FF0000>字体改成红色了</font> A标签 新窗口:<a href="xxx ...

  3. codeup 1934 查找元素

    题目描述: 输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1. 输入: 测试数据有多组,输入n(1<=n<=200), ...

  4. 浅谈自动化构建之grunt

    自动化构建 开发行业的自动化构建 一句话把源代码转化为生产代码,作用是脱离运行环境兼容带来的问题开发阶段使用提高效率的语法,规范 和标准,构建转换那些不被支持的特性转化成能够执行的代码. 一.简单的自 ...

  5. 常用的hadoop和yarn的端口总结

    节点 默认端口 用途说明 HDFS DataNode 50010 datanode服务端口,用于数据传输 50075 http服务的端口 50475 https服务的端口 50020 ipc服务的端口 ...

  6. Jmeter5.1.1 把默认语言调整为中文

    进入安装目录:apache-jmeter-5.1.1\bin\ 找到 jmeter.properties文件 搜索" language=en ",前面带有"#" ...

  7. IDE 阅读代码时候如何防止误触

    在 JetBrains 系列的编辑器中,点击右下角小锁图标,就可以只读防止误修改. Visual Studio 下安装 CodeMaid 插件 http://www.codemaid.net/ htt ...

  8. 无刷电调基础知识以及BLHeli固件烧录和参数调整

    标题: 无刷电调基础知识以及BLHeli固件烧录和参数调整 作者: 梦幻之心星 sky-seeker@qq.com 标签: [#基础知识,#电调,#BLHeli,#固件,#烧录,#调参] 目录: [电 ...

  9. C# 给Word不同页面设置不同背景

    给Word文档设置背景时,通常只能针对整篇文档设置统一的背景,如果需要对某些页面单独设置背景,则需要通过另外的方式来实现.本文通过C# 程序代码演示如何来实现.并附VB.NET代码作参考. 思路:通过 ...

  10. js打开新窗口并且居中显示

    function openwindow(url,name,iWidth,iHeight) { var url; //转向网页的地址; var name; //网页名称,可为空; var iWidth; ...