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. 【C++算法设计】八数码问题

    八数码问题 [题意] 编好为1~8的8个正方形滑块摆成3行3列(一个格子为空),如图所示 每次可以移动空格相邻的滑块到空格,要计算出能移动出目标局面的最小步数,如无法达到则输出-1. [分析] 我们可 ...

  2. <td style="word-break:break-all"> 在html中控制自动换行

    在html中控制自动换行   其实只要在表格控制中添加一句 <td style="word-break:break-all">就搞定了. 其中可能对英文换行可能会分开一 ...

  3. 自定义View编译失败。Binary XML file line #255: Error inflating

    02-28 15:17:16.281: DEBUG/AndroidRuntime(391): Shutting down VM 02-28 15:17:16.281: WARN/dalvikvm(39 ...

  4. Java程序栈信息文件中的秘密(五)

    最近发现在使用jstack工具在导出Java应用的线程栈时有一个小小的窍门,比如Linux环境上有一个用户为appuser,假如以这个用户启动了一个Java进程B,如果想要导出进程B的线程栈,则必须切 ...

  5. matlab画甘特图

    近期为发小论文一直在研究作业调度问题,好不easy把数据搞出来了,结果又被画甘特图给难住了,查了各种资料.anygantt,highchart.Jfree chart等都试了,效果都不咋好.无意中留意 ...

  6. VS EF Error: Configuration Error extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider"

    错误截图: Configuration Error :<add extension=".edmx" type="System.Data.Entity.Design. ...

  7. js 计算两个时间差

    /* * 计算两个日期的间隔天数* BeginDate:起始日期的文本框,格式為:2012-01-01* EndDate:結束日期的文本框,格式為:2012-01-02* 返回兩個日期所差的天數* 調 ...

  8. C# 委托和方法

    委托是一种特殊的引用类型,它将方法也作为特殊的对象封装起来,从而将方法作为变量或参数进行传递 using System; using System.Collections.Generic; using ...

  9. 原生javascript实现老.虎机抽奖点名demo源码思路解析

    想着使用原生Javascript做一个随机点名的小应用, 也可以做抽奖使用. html简单化,人名单可以通过js生成并处理. 可以非常随意的添加修改人名字. 应用想带点特效,比如老.虎机转动的特效. ...

  10. iptables 简单配置

    通过命令 netstat -tnl 可以查看当前服务器打开了哪些端口  Ssh代码   netstat -tnl     查看防火墙设置  Ssh代码   iptables -L -n      开放 ...