EAN码的全名为欧洲商品条码(European Article Number),源於西元1977年,由欧洲十二个工业国家所共同发展出来的一种条码。目前已成为一种国际性的条码系统。EAN条码系统的管理是由国际商品条码总会(International Article Numbering Association)负责各会员国的国家代表号码之分配与授权,再由各会员国的商品条码专责机构,对其国内的制造商、批发商、零售商等授予厂商代表号码。目前已有30多个国家加盟EAN。

EAN码具有以下特性:

  只能储存数字。可双向扫瞄处理,即条码可由左至右或由右至左扫描。须有一检查码,以防读取资料的错误情形发生,位於EAN码中的最右边处。具有左护线、中线及右护线,以分隔条码上的不同部分与撷取适当的安全空间来处理。条码长度一定,较欠缺弹性,但经由适当的管道,可使其通用於世界各国。
  依结构的不同,可区分为:EAN-13码:由13个数字组成,为EAN的标准编码型式。EAN- 8码:由8个数字组成,属EAN的简易编码型式。

进一步介绍EAN标准码(EAN-13码)和EAN缩短码(EAN-8码)的结构与编码方式。

EAN13码

 

标准码共13位数,系由「国家代码」3位数,「厂商代码」4位数,「产品代码」5位数,以及「检查码」1位数组成。其排列如下:

EAN-13码的结构与编码方式如图所示,包括:

  1. 国家号码由国际商品条码总会授权,我国的「国家号码」为「471」,凡由我国核发的号码,均须冠上「471」为字头,以别於其他国家。  

  2. 厂商代码由中华民国商品条码策进会核发给申请厂商,占四个码,代表申请厂商的号码。  

  3. 产品代码占五个码,系代表单项产品的号码,由厂商自由编定。  

  4. 检查码占一个码,系为防止条码扫瞄器误读的自我检查。


图 EAN-13码的结构与编码方式

 

EAN-13码的编码方式如下:

  1. 导入值:为EAN-13的最左边第一个数字,即国家代码的第一码,是不用条码符号表示的,其功能仅做为左资料码的编码设定之用。  

  2. 左护线:为辅助码,不代表任何资料,列印长度较一般资料长,逻辑型态为101,其中1代表细黑,0代表细白。  

  3. 左资料码:即左护线和中线间的条码部分,共有六个数字资料,其编码方式取决於导入值之大小,规则如表所示:

表 EAN-13码左资料码编码规则

导入值

编码方式

导入值

编码方式

1

AAAAAA

6

ABBBAA

2

AABABB

7

ABABAB

3

AABBAB

8

ABABBA

4

ABAABB

9

ABBABA

5

ABBAAB

 

 

表 EAN-13码左资料码逻辑值

 

 

A类编码原则

B类编码原则

字码

逻辑值

逻辑值

0

0

0001101

0100111

1

1

0011001

0110011

2

2

0010011

0011011

3

3

0111101

0100001

4

4

0100011

0011101

5

5

0110001

0111001

6

6

0101111

0000101

7

7

0111011

0010001

8

8

0110111

0001001

9

9

0001011

0010111

注: 0为空白,1为线条

  1. 中线:为辅助码,作者区分左资料码与右资料码之用。中线长度较一般资料为长,逻辑型态为01010。  

  2. 右资料码:即位於右护线与中线之间的部份。包括五位数产品代码与一位检查码。其编码方式采为C类编码规则,如表。

表 EAN-13码右资料码逻辑值

 

 

C类编码原则

字码

逻辑值

0

0

1110010

1

1

1100110

2

2

1101100

3

3

1000010

4

4

1011100

5

5

1001110

6

6

1010000

7

7

1000100

8

8

1001000

9

9

1110100

注: 0为空白,1为线条

  1. 右护线:为辅助码,列印长度与左护线、中线相同,逻辑型态亦为101。  

  2. EAN-13码的检查码的算法与UPC-A码相同,例如假设一EAN-13码各码代号如下:

N1

N2

N3

N4

N5

N6

N7

N8

N9

N10

N11

N12

C

检查码之计算步骤如下:

C1 = N1+ N3+N5+N7+N9+N11

C2 = (N2+N4+N6+N8+N10+N12)× 3

CC = (C1+C2) 取个位数

C (检查码) = 10 - CC  (若值为10,则取0)

  1. 部分地区和国家的国别码如表。

部分国EAN国家代码

代码

国家(或地区)

代码

国家

00~09

美国.加拿大

50

英国.爱尔兰

30~37

法国

690~691

中国大陆

40~44

德国

88

韩国

   

885

泰国

471

台湾

888

新加坡

49

日本

955

马来西亚

EAN8码

EAN-8码的结构

EAN缩短码共有8位数,当包装面积小於120平方公分以下无法使用标准码时,可以申请使用缩短码。其结构与编码方式如图所示。包括: 国家号码与标准码同。厂商单项产品号码,系每一项需使用缩短码的产品均需逐一申请个别号码。检查码的计算方式与标准码相同。 

图 EAN-8码结构与编码方式

EAN-8码的编码方式大致与EAN-13码相同,如下所述: EAN-8码具有以下特点: EAN-8码共8位数,包括国别码2位,产品代码5位,及检查码1位。  EAN-8从空白区开始共81个模组,每个模组长0.33mm,条码符号长度为26.73mm。EAN-8码左右资料码编码规则与EAN-13码相同。

第二节 EAN 8 码 / EAN 13 码的更多相关文章

  1. 一维码EAN 13简介及其解码实现(zxing-cpp)

    一维码EAN 13:属于国际标准条码, 由13个数字组成,为EAN的标准编码型式(EAN标准码). 依结构的不同,EAN条码可区分为: 1.  EAN 13码: 由13个数字组成,为EAN的标准编码型 ...

  2. (zxing.net)一维码EAN 13的简介、实现与解码

    一维码EAN 13:属于国际标准条码, 由13个数字组成,为EAN的标准编码型式(EAN标准码). 依结构的不同,EAN条码可区分为: EAN 13码: 由13个数字组成,为EAN的标准编码型式(EA ...

  3. 一维码EAN 8简介及其解码实现(zxing-cpp)

    一维码EAN 8:属于国际标准条码,由8个数字组成,属EAN的简易编码形式(EAN缩短码).当包装面积小于120平方公分以下无法使用标准码时,可以申请使用缩短码. 依结构的不同,EAN条码可区分为: ...

  4. (zxing.net)一维码EAN 8的简介、实现与解码

    一.简介 一维码EAN 8:属于国际标准条码,由8个数字组成,属EAN的简易编码形式(EAN缩短码).当包装面积小于120平方公分以下无法使用标准码时,可以申请使用缩短码. 依结构的不同,EAN条码可 ...

  5. 源码讲解 node+mongodb 建站攻略(一期)第二节

    源码讲解 node+mongodb 建站攻略(一期)第二节 上一节,我们完成了模拟数据,这次我们来玩儿真正的数据库,mongodb. 代码http://www.imlwj.com/download/n ...

  6. 曹工说Spring Boot源码(13)-- AspectJ的运行时织入(Load-Time-Weaving),基本内容是讲清楚了(附源码)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  7. Solr4.8.0源码分析(13)之LuceneCore的索引修复

    Solr4.8.0源码分析(13)之LuceneCore的索引修复 题记:今天在公司研究elasticsearch,突然看到一篇博客说elasticsearch具有索引修复功能,顿感好奇,于是点进去看 ...

  8. 第二节:Web前端-ASP.NET之C#基础

    第二节:Web前端-ASP.NET之C#基础 学习ASP.NET,要掌握学习语言,控件等技能, <div style="text-align: center; line-height: ...

  9. Android(java)学习笔记222:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例的优化:请求码和结果码)

    1.开启界面获取返回值 (1)采用一种特殊的方式开启Activity:               startActivityForResult(intent , 0): (2)在被开启的Activi ...

随机推荐

  1. 删除input或textarea输入框在移动版显示的阴影(Safari/iPhone)

    移动端浏览网页元素时,自动给input和textarea添加了内部阴影的效果,只需加入样式即可去除 input,textarea{-webkit-appearance: none;} input[ty ...

  2. angularJS使用$watch监控数据模型的变化

    使用$watch监控数据模型的变化 在scope 内置的全部函数中,用得最多的可能就是$watch 函数了.当你的数据模型中某一部分发生变化时,$watch 函数能够向你发出通知.你能够监控单个对象的 ...

  3. 1.语言概述-JavaScript权威指南笔记

    上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...

  4. 初步认识ExtJS

    最近因为项目,需要去学习ExtJS的相关内容. 现在对于ExtJS完全是小白一枚. 目前使用的是ExtJS4.2的版本,官网上现在最新版本是6的. 第一个方法:Ext.onReady() Ext.on ...

  5. Problem B: Excuses, Excuses!

    Description Judge Ito is having a problem with people subpoenaed for jury duty giving rather lame ex ...

  6. HTML5 实现图像模糊算法

    做个广告,WEB/PHP/JQ/HTML5/MYSQL/QQ群6848027 项目中需要用到HTML5模糊图像,以前用GDI,GDI+中都有现成的组件来实现,HTML5中如何实现? createIma ...

  7. selenium 学习笔记 ---新手学习记录(2) 问题总结

    今天研究了下ie.chrome.firefox浏览器执行脚本 1.首先firefox下执行时,我是安装在d盘了,所以要更改路径 //如果火狐浏览器没有默认安装在C盘,需要制定其路径 System.se ...

  8. 有意思的C宏

    在Linux内核.嵌入式代码等传统的C代码里,会有一些难以识别的宏定义.我记得在eCos, UBoot, FFmpeg有一些比较BT的宏定义,很难读懂.对于C++程序员来说,最好将这种难读的宏定义转成 ...

  9. 没有开发者账号,如何解锁wp8设备

    原文 http://www.cnblogs.com/vsdot/p/3263454.html 问题的引入 好了,问题的由来是这样的,我想把我开发的wp8手机部署到手机上,可是竟然出现了下面的问题: [ ...

  10. Linux软件安装包中devel与非devel包之间的区别

    带devel(develop)的包,俗称开发包.功能上与普通包相同,但体积更大使用rpm -qi看看这两类包的区别: # rpm -qi glibc-devel-2.12-1.149.el6.x86_ ...