条形码CODE128编码规则CODE128简介CODE128码于1981年推出,是一种长度可变、连续性的字母数字条码。
与其他一维条码比较起来,相对较为复杂,支持的宇元也相对较多,又有不同的编码为式可供交互运用,因此其应用弹性也较大。
CODE 128 特性1、具有A、B、C三种不同的编码类型,可提供标准ASC II中128个宇元的编码使用;2、允许双向扫描;3、可自行决定是否加上校验位;4、条码长度可调,但包括开始位和结束位在内,不可超过232个字元;5、同一个CODE128码可以由A、B、C 三种不同编码规则互换,既可扩大字元选择的范围,也可缩短编码的长度。
CODE 128编码方式的编码范围1、CODE128A:标准数字、大写字母、控制符及特殊宇符;2、CODE128B:标准数字、大写宇母、小写字母及特殊字符;3、CODE128C/EAN128: [00]~[99]的数字对集合,共100个,既只能表示偶数位长度的数字。
CODE 128编码规则开始位+[FNC1(为EAN128码时附加)]+数据位+校验位+结束位CODE 128校验位计算(开始位对应ID+每位数据在整个数据中的位置×每位数据对应的ID值)% 103CODE 128编码表ID ASC II Cade128A Cade128B Cade128C BandCode 编码值0 32 SP SP 00 212222 110110011001 33 ! ! 01 222122 110011011002 34 “ “ 02 222221 110011001103 35 # # 03 121223 100100110004 36 $ $ 04 121322 100h00011005 37 % % 05 131222 100010011006 38 & & 06 122213 100110010007 39 ‘ ‘ 07 122312 100110001008 40 ( ( 08 132212 100011001009 41 ) ) 09 221213 1100h00h00010 42 * * 10 221312 1100100010011 43 + + 11 231212 1100010010012 44 , , 12 112232 1011001110013 45 - - 13 122132 1001101110014 46 . . 14 122231 1001100111015 47 / / 15 113222 1011100110016 48 0 0 16 123122 1001110110017 49 1 1 17 123221 1001110011018 50 2 2 18 223211 1100111001019 51 3 3 19 221132 1100101110020 52 4 4 20 221231 1100100111021 53 5 5 21 213212 1101110010022 54 6 6 22 223112 1100111010023 55 7 7 23 312131 1110110111024 56 8 8 24 311222 1110100110025 57 9 9 25 321122 1110010110026 58 : : 26 321221 1110010011027 59 ; ; 27 312212 1110110010028 60 < < 28 322112 1110011010029 61 = = 29 322211 1110011001030 62 > > 30 212123 1101101100031 63 ? ? 31 212321 1101100011032 64 @ @ 32 232121 1100011011033 65 A A 33 111323 1010001100034 66 B B 34 131123 1000101100035 67 C C 35 131321 1000100011036 68 D D 36 112313 1011000100037 69 E E 37 132113 1000110100038 70 F F 38 132311 1000110001039 71 G G 39 211313 1101000100040 72 H H 40 231113 1100010100041 73 I I 41 231311 1100010001042 74 J J 42 112133 1011011100043 75 K K 43 112331 1011000111044 76 L L 44 132131 1000110111045 77 M M 45 113123 1011101100046 78 N N 46 113321 1011100011047 79 O O 47 133121 1000111011048 80 P P 48 313121 1110111011049 81 Q Q 49 211331 1101000111050 82 R R 50 231131 1100010111051 83 S S 51 213113 1101110100052 84 T T 52 213311 1101110001053 85 U U 53 213131 1101110111054 86 V V 54 311123 1110101100055 87 W W 55 311321 1110100011056 88 X X 56 331121 1110001011057 89 Y Y 57 312113 1110110100058 90 Z Z 58 312311 111011000101110001101059 91 [ [ 59 33211160 92 \ \ 60 3141111110111101011001000010 61 93 ] ] 61 22141111110001010 62 94 ^ ^ 62 4311111010011000063 95 _ _ 63 11122464 96 NUL ` 64 111422 1010000110065 97 SOH a 65 121124 1001011000066 98 STX b 66 121421 1001000011067 99 ETX c 67 141122 1000010110068 100 EOT d 68 141221 1000010011069 101 ENQ e 69 112214 1011001000070 102 ACK f 70 112412 1011000010071 103 BEL g 71 122114 1001101000072 104 BS h 72 122411 1001100001073 105 HT i 73 142112 1000011010074 106 LF j 74 142211 1000011001075 107 VT k 75 241211 1100001001076 108 FF l 76 221114 1100101000077 109 CR m 77 413111 1111011101078 110 SO n 78 241112 110000101007910001111010 111 SI o 79 13411180 112 DLE p 80 111242 1010011110081 113 DC1 q 81 121142 1001011110082 114 DC2 r 82 121241 1001001111083 115 DC3 s 83 114212 1011110010084 116 DC4 t 84 124112 1001111010085 117 NAK u 85 124211 1001111001086 118 SYN v 86 411212 1111010010087 119 ETB w 87 421112 1111001010088 120 CAN x 88 421211 1111001001089 121 EM y 89 212141 1101101111090 122 SUB z 90 214121 1101111011091 123 ESC { 91 412121 1111011011092 124 FS | 92 111143 1010111100093 125 GS } 93 111341 1010001111094 126 RS ~ 94 131141 100010111101011110100095 200 US DEL 95 1141131011110001096 201 FNC3 FNC3 96 11431197 202 FNC2 FNC2 97 4111131111010100098 203 SHIFT SHIFT 98 411311 1111010001099 204 CODEC CODEC 99 113141 10111011110100 205 CODEB FNC4 CODEB 114131 10111101110 101 206 FNC4 CODEA CODEA 311141 1110101111011110101110 102 207 FNCl FNCl FNCl 411131103 208 StartA StartA StartA 211412 1101000010011010010000 104 209 StartB StartB StartB 211214105 210 StartC StartC StartC 211232 11010111001100011101011 106 211 Stop Stop Stop 2331112CODE128 编码示例以95270078为例:CODE128A,开始位对应的ID为103,第1位数据9对应的ID为25, 第2位数据5对应的ID为21,依此类推,可以计算校验位为:(103+1×25+2×21+3×18+4×23+5×16+6×16+7×23+8×24)% 103 = 21。
即校验位的ID为21。
对照编码表95270078编码表示为:开始位StartA(11010000100)+数据位[9(11100101100)+5(11011100100)+2(11001110010)+7(11101101110)+0(10011101100)+0(10011101100)+7(11101101110)+8(11101001100)]+检验位21(11011100100)+结束位Stop(1100011101011)即:11010000100111001011001101110010011001110010111011011101001110110010011101100111 0110111011101001100110111001001100011101011若要打印,只需将1用黑色线标出0用白色线标出,一个简单的条形码就生成了。