上网google,中文的内容很令我失望,都是千篇一律的介绍条形码有什么好处的,到处充斥着转载内容,我需要的是怎样编码的信息,不是我要卖大米是否要申请个商品条形码。看了我很烦,还是用英文好了。在google中输入How to read UPC (Universal Product Code)。第一个结果就很有价值,标题为How to Read 12 Digit UPC Barcodes里面有UPC的编码细节,虽然内容不多,但是都是点到要害的!
1、Note that barcodes are made up of both black and white lines. The white spaces in between the black lines are part of the code.
1、首先,要注意的是条形码是由黑线和白线组成的。两条黑线间滴白线也是编码的一部分。
2、Understand that there are four different thicknesses to the lines. Henceforth, the skinniest line will be referred to as "1," the medium-sized line as "2," the next largest line as "3." and the thickest is "4."
2、要了解线有4种不同的宽度。开头遇到的最细的线将被看做“1”,比最细的大一倍的自然就是“2”了,再大点是“3”了,最宽就是“4”了。【资讯第一播报http://zxdybb.netsh.com.cn】
3、Each UPC barcode begins and ends with 101 (thin black, thin white, thin black). In the very middle of the barcode, you will notice two thin black lines sticking down between the numbers. The thin white between them, as well as the thin whites to either side, make up a 01010. Each UPC barcode has 01010 in the middle.
3、每个UPC条形码以101(细黑,细白,细黑)开始并以它结束。在条形码的中间,你会注意到两条细黑线比旁边的线长,分开了数字。两边的白细线和这两黑细线构成了01010。每个UPC编码都有01010在中间。(注:为了防止扫描时出错)
4、Recognize that each digit, including the small numbers that begin and end the barcode, has its own unique four-line set. 0 = 3211, 1 = 2221, 2 = 2122, 3 = 1411, 4 = 1132, 5 = 1231, 6 = 1114, 7 = 1312, 8 = 1213, 9 = 3112. (Note that the sum of bar widths numbers is 7 for all codes because each code is 7 units wide.)
4、由上图可以注意到每个数字,(这个应该怎翻??)包括开始标志和结束标志都有它们独有的4线的编码。0=3211,1=2221,2=2122,3=1411,4=1132,5=1231,6=1114,7=1312,8=1213,9=3112。(请注意编码加起来和为7,因为每个编码都是7个最小单位的宽度)
5、So, the barcode above whose first two digits are 03 would start out "11132111411". Broken down this is "111-3211-1411" Where 111 marks the beginning of the bar code and 3211 marks the digit 0 .
5、因此,上面的条形码头两个数字将由这样开始“11132111411”。用横线分隔开就是“111-3211-1411”,其中111标志条形码的开始3211表示数字0。(这里我感觉有错,应该是101开始而不是111开始吧?)
突然醒起!我看过一书《编码的奥秘》里面有介绍UPC的,我咋就忘了呢!相关内容在第9章,里面还介绍了胶卷盒里面的一种表示胶卷参数的编码。有兴趣可以去下电子书看,网上很流行,肯定能找到。在此书中了解到了更多的内容:UPC编码被中线01010隔开的两边数字编码方式是不一样的,区别就是把另一边取反。 左边的编码 0001101=0 0110001=5 0011001=1 0101111=6 0010011=2 0111011=7 0111101=3 0110111=8 0100011=4 0001011=9 注意,每个7位代码都是以0开头,以1结尾的。如果扫描仪遇到了第一个比特位值为 1或最后一个比特位值为0的情况,它就知道自己没有将UPC正确地读入或者是条形码被窜改了。另外我们还注意到每个代码都仅有两组连续的值为1的比特位,这就意味着每个数字对应着条形码中的两个竖条。上表中的每个代码中都包含有奇数个值为1的比特位,这也是用于检测差错和数据一致性的一种机制,称为奇偶校验。如果一组比特位中含有奇数个1,就称之为奇校验;如果含有偶数个1,就称之为偶校验。这样看来,所有这些代码都拥有奇校验。为了给UPC右边的7位一组的数字解码,可以采用下面的表格:
右边的编码 1110010=0 1001110=5 1100110=1 1010000=6 1101100=2 1000100=7 1000010=3 1001000=8 1011100=4 1110100=9
书中介绍了更多的相关内容,但是我拿起我的饮料瓶,满怀信心的对照表来解码时,发现解不了码。继续搜索,发现原来还有个欧共体搞出来的EAN码!继续吧?伟大的google啊,请告诉我How To Read EAN。结果不大理想,找了半天,发现篇论文里面有点东西
发现了里面有EAN-13的编码表,拿来和我喝的乐百氏瓶子上的条形码一对,基本对得上号了,位数也是13位的,前面一个6没有被编码,代表的是商品的类别。也只是基本上而已,有几个数字还是跟上图介绍的不一样!天,难道还有其他编码,我手里拿的不是EAN-13编码的?!汗~~~~