精华内容
下载资源
问答
  • 汉字编码方案介绍
    2015-04-27 14:17:32

    当我们使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF­‐8 这几种编码方式间相互转换。同样是txt 文件,Windows 是怎样识别编码方式的呢?同样一份txt文件,Unicode、Unicode big endian和UTF­‐8 编码的txt文件的大小都不一样,二进制文件开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF­‐8)。但这些标记是基于什么标准呢?

    本文主要介绍一下目前常用的汉字编码方案,从而使读者看完后能对于汉字编码有基本的认识。

    GB2312 字符集

    GB2312是1980年国家制定的汉字内码规范。GB是国标的汉语拼音首字母。该字符集收录了收入汉字6763 个,符号715 个,总计7478 个字符,通常所说的一、二级汉字库就全部包含在GB2312 中。楷体­‐GB2312、仿宋­‐GB2312、华文行楷等市面上绝大多数字体支持显示这个字符集,亦是大多数输入法所采用的字符集。

    GB2312 将收录的汉字分成两级:第一级是常用汉字计3755 个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008 个,置于56-87 区,按部首/笔画顺序排列。故而GB2312 最多能表示6763 个汉字。

    虽然GB2312 包含了绝大部分的常用简体汉字,但是由于中文的复杂性,所以GB2312 目前已经越来越不能适应需要了,特别是因为人名、地名中包含的很多字GB2312 中都没有,如‘镕’字,GB2312 中就没有包含,这样导致很多混乱。

    Big5 字符集

    Big5 中文名“大五码”,是繁体字常用的字符集,共收入13060 个繁体汉字,808 个符号,总计13868 个字符,普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台大多数字体支持这个字符集的显示。

    1983 年10 月,台湾国家科学委员会、教育部国语推行委员会、中央标准局、行政院共同制定了《通用汉字标准交换码》,后经修订于1992 年5 月公布,更名为《中文标准交换码》,BIG5 是台湾资讯工业策进会根据以上标准制定的编码方案。虽然Big5 存在一些瑕疵,但广泛应用于电脑行业,尤其是
    互联网中,从而成为一种事实上的行业标准。

    BIG5 码是双字节编码方案,其中第一个字节的值在OXAO-OXFE 之间,第二个字节在OX40-OX7E 和OXA1-OXFE 之间。BIG5 收录13461 个汉字和符号,包括:

    • 符号408 个,编码位置A140-A3BE
    • 常用字5401 个,编码位置A440-C67E,包括台湾教育部颁布的《常用国字标准字体表》的全部汉字4808 个,台湾教科书常用字587 个,异体字6 个。
    • 次常用字7652 个,编码位置C940-F9D5,包括台湾教育部颁布的《次常用国字标准字体表》的全部汉字6341 个,《罕用国字标准字体表》中使用频率较高的字1311 个。

    GBK 字符集

    GB2312-80 仅收汉字6763 个,这大大少于现有汉字,随着时间推移及汉字文化的不断延伸推广,有些原来很少用的字,现在变成了常用字。因此全国信息技术化技术委员会于1995 年12 月1 日《汉字内码扩展规范》。GBK 向下与GB2312完全兼容,包含Big­‐5 的繁体字(但是不兼容Big­‐5 字符集编码)。
    GBK 共收入21886 个汉字和图形符号,包括:

    • GB2312 中的全部汉字、非汉字符号。
    • BIG5 中的全部汉字。
    • 与ISO-10646 相应的国家标准GB13000 中的其它CJK 汉字
    • (以上合计20902 个汉字)
    • 其它汉字、部首、符号,共计984 个。

    微软公司自Windows95 简体中文版开始支持GBK 代码,但目前的多数搜索引擎都不能很好地支持GBK汉字。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-­‐SB)、Arial Unicode MS、MingLiU、PMingLiU 等字体支持显示这个字符集。微软拼音输入法2003、全拼、紫光
    拼音等输入法,能够录入GBK 简繁体汉字。

    Unicode 字符集

    很多传统的编码方式都有一个共同的问题,即容许电脑处理双语环境(通常使用拉丁字母以及其本地语言),但却无法同时支持多语言环境。例如ISO8859 所定义的字符虽然在不同的国家中广泛地使用,可是在不同国家间却经常出现不兼容的情况。因此产生了Unicode,它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的学名“Universal Multiple‐Octet Coded Character Set”,简称为UCS。UCS 可以看作是”Unicode Character Set”的缩写。历史上存在两个试图独立设计Unicode的组织,即国际标准化组织(ISO)和一个软件制造商的协会(unicode.org)。

    ISO 开发了ISO 10646 项目,Unicode 协会开发了Unicode 项目。在1991 年前后,双方都认识到世界不需要两个不兼容的字符集。于是它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从Unicode2.0 开始,Unicode 项目采用了与ISO 10646­‐1 相同的字库和字码。目前两个项目仍都存在,并独立地公布各自的标准。Unicode 协会现在的最新版本是2005 年的Unicode 4.1.0。ISO 的最新标准是ISO 10646­‐3:2003。

    UTF­‐8、UTF­‐16 等编码方式

    UCS只是规定如何编码,并没有规定如何传输、保存这个编码。例如“汉”字的UCS 编码是6C49,我可以用4 个ascii 数字来传输、保存这个编码;也可以用utf­‐8 编码:3 个连续的字节E6 B1 89 来表示它。关键在于通信双方都要认可。UTF­‐8、UTF­‐7、UTF­‐16 都是被广泛接受的方案。UTF­‐8 的一个特别的好处是它与ISO­‐8859­‐1 完全兼容。UTF 是“UCS Transformation Format”的缩写。

    简单来说,unicode,gbk 和大五码就是编码的值,而utf­‐8,uft­‐16 之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode 值与gbk 就是不一样的,假设uncode 为a040,gbk 为b030,而uft­‐8 码,就是把那个值表现的形式.utf­‐8 码完全只针对uncode 来组织的,如果GBK 要转UTF-8 必须先转uncode 码,再转utf-­‐8 就可以了.

    更多相关内容
  • 汉字编码方案

    2020-09-19 19:57:50
    由于计算机只能处理数字,因此,当需要用计算机来处理字符(以及字符串)的时候,就要一种机制来实现字符到数字的转换,这便是字符串的编码。 最开始的时候,计算机只有英文字符,故需要编码的符号比较少。此时用的...

    由于计算机只能处理数字,因此,当需要用计算机来处理字符(以及字符串)的时候,就要有一种机制来实现字符到数字的转换,这便是字符串的编码。

    最开始的时候,计算机只有英文字符,故需要编码的符号比较少。此时用的编码为ASCII编码,其中包括大小写英文字母、数字以及一些符号

    此时实现这些字符的编码,只需要一个字节就够了(即8位)。但是对于中文来说,需要对汉字进行编码时,一个字节是远远不够的。考虑到不能和当时已有的ASCII编码冲突,中文最初制定了GB2312编码。其中包括6763个汉字和682个其它符号。95年重新修订了编码,命名GBK1.0,共收录了21886个符号。 之后又推出了GBK18030编码,共收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字,现在Windows平台必需要支持GBK18030编码。

    通过制定了这样的编码标准,使得编码对简体中文汉字、繁体中文汉字实现了有效的支持,但是这个编码体系对于非拉丁字母语言国家来说,还是存在问题。
      为了实现所有字符(包括各个国家的语言字符)放在一起时,也不会显示乱码的目标,相关国家的标准化组织和文字工作者共同致力于制定一种新的编码方式,于是,Unicode编码便诞生了。
      Unicode的学名为“Universal Multiple-Octet Coded Character Set”,简称UCS。每个Unicode编码的字符都只需要两个字节。
      然而,这样的编码规则依旧存在问题,因为当使用Unicode进行编码时,对于ASCII的字符集而言,这些字符的编码直接在其字符编码前加’0x00’,但这样会加入一些控制符,如’/’,对于Unix以及C语言程序来说,这个字符无疑是十分敏感而又危险的,因此人们在Unicode的基础上,进一步进行了改善,即制定了UTF-8字符集。UTF-8表示在Unicode的基础上进一步修改编码,使得每个字符都能用8的整数倍位来进行存储(即一个字符需要0~3个字节表示存储)。这样的扩充,使得ASCII的字符保留了原始的编码,即这些字符依旧为单字节字符,而汉字则大部分变成了3字节的编码。因此,如今的UTF-8编码标准下,基本中文字符的编码都在3个字节。通过UTF-8这种较为灵活的编码机制,使得上述谈到的所有问题得以解决,这也是当前国际间最流行的存储字符的编码格式。
    在这里插入图片描述
    综上而言,汉字的编码,经历的GB2312、GBK1.0、GBK18030等编码机制后,迈向国际的编码体系,即Unicode编码,及其演化的编码体系UTF-8等,这便是中文汉字编码方案的变化过程。值得一提的是,对于中国大陆而言,Unicode并不被中国政府很好地接受,中国政府要求在中国大陆出售的软件必须支持GBK18030编码格式。

    展开全文
  • 计算机汉字编码主要哪些方式

    千次阅读 2021-06-15 01:06:02
    在GB2312 标准中,共编排94个区,每区94位汉字(符号)。例如,“亮”按照GB2312处于第33区的第33个字,它的区位码就是3333,使用区位输入法,用3333就可以输入“亮”。2、内码内码是用于计算机处理的字符编码方式。...

    836e1f5cc7242820ffae5af12ee7e77e.png

    1、区位码

    区位码是常用汉字和符号按照符号、特常用汉字、次常用汉字的顺序先区后位对汉字进行数字编码。在GB2312 标准中,共编排有94个区,每区94位汉字(符号)。例如,“亮”按照GB2312处于第33区的第33个字,它的区位码就是3333,使用区位输入法,用3333就可以输入“亮”。

    2、内码

    内码是用于计算机处理的字符编码方式。在CCDOS中,汉字的内码是第一字节“区码”加160(0xA0),第二字节“位码”加160(0xA0),例如“亮”字的内码,第一字节和第二字节都是33+160(0xC1),因为它的区码和位码都是33,通常说的GB码或者GB2312码都是指这种编码规则下的内码,与港台地区经常使用的BIG5码相区别。

    3、外码

    外码是输入汉字时使用的编码,跟特定输入法对应。例如使用拼音输入法,那么亮字的外码则是liang,使用区位输入法,亮字的外码也是3333(跟区位码值相等,但概念不同)。

    4、ASCII码

    ASCII是美国信息交换标准码。鉴于信息交换的重要性,为统一文字符号的编码标准,让不同厂牌机型的计算机都能使用同一套标准化的信息交换码,美国国家标准局制定了ASCII码 (America Standard Code for Information Interchange,美国信息交换标准码),作为数据传输的标准码。早期使用7 个位来表示英文字母、数字0~9及其它符号,现在则使用8个位,共可表示256个不同的文字与符号,为目前各计算机系统中使用最普遍也最广泛的英文标准码,相对于ASCII码,中文系统使用最广泛的内码则为GB2312和Big-5码。

    5、GB2312-80

    GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE.

    6、GBK1.0

    GBK1.0(1995年)是汉字扩展规范,共收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。

    7、GB18030

    GB18030(2000年)是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。

    8、DBCS

    中文、日文、韩文等语言使用两个字节表示一个字符,其字符集称为双字节字符集(double-byte character set),字符流在解析时将两个字节作为一个双字节编码。GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

    9、Unicode

    Unicode 也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。UCS可以看作是"Unicode Character Set"的缩写。目前存在两个国际组织:国际标准化组织(ISO)和一个软件制造商的协会(unicode.org),按照单一编码表协同工作,现在的版本有ISO10646-3和Unicode 4.1.0。UCS有两种格式:UCS-2和UCS-4。顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上只用了31位,最高位必须为0)编码。

    Unicode只与ASCII兼容,与GB2312、GBK、GB18030不兼容,是另一种方式的汉字编码。

    10、UTF

    UCS规定了怎么用多个字节表示各种文字。怎样传输这些编码,是由UTF(UCS Transformation Format)规范规定的,常见的UTF规范包括UTF-8、UTF-7、UTF-16。UTF-8就是以8位为单元(单字节)对UCS进行编码,UTF-16是以16位为单元对UCS进行编码,在传输过程中要考虑字节顺序。

    11、BOM

    Unicode规范中推荐的标记字节顺序的方法是BOM(Byte Order Mark)。在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。如果接收者收到FEFF,就表明这个字节流是高字节在前;如果收到FFFE,就表明这个字节流是低字节在前。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。

    UTF-8使用单字节,不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF,如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。

    ◆◆

    评论读取中....

    请登录后再发表评论!

    ◆◆

    修改失败,请稍后尝试

    展开全文
  • 汉字编码

    千次阅读 2018-06-28 00:26:41
    项目领导希望每个星期都一位小伙伴在周会时分享。所以我们的一个小伙伴开始统一名单,最后用excel生成了一个按照A-Z排序的名单。于是我插了一句,如果用Array.prototype.sort()方法是不是也这样的呢,最后试了...

    名词解释:

    • 字符集 :

      字符集(Character set)是各种文字和符号,包括各国家文字、标点符号、图形符号、数字多个字符的集合。常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。

    • 字符编码

      字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。

    背景介绍

    项目领导希望每个星期都有一位小伙伴在周会时分享。所以我们的一个小伙伴开始统一名单,最后用excel生成了一个按照A-Z排序的名单。于是我插了一句,如果用Array.prototype.sort()方法是不是也这样的呢,最后试了一下,果然如此。

    问题提出

    sort()对于汉字的排序规则是什么呢?

    汉字的编码规则:

    ①整字输入法:
    前一阶段,一般是将三四千个常用汉字排列在一个具有三四百个键位的大键盘上。大多是将这些汉字按XY坐标排列在一张字表上,通常叫“字表法”,或“笔触字表法”。比如,X25行和Y90列交叉的字为“国”,当电笔点到字表上的“国”字时,机器自动将该字的代码2590输入。键盘上或字表中字按部首或按音序或按字义联想而排列。不常用的字作为盘外字或表外字,另行编码处理。
    ②字形分解法:
    将汉字的形体分解成笔画或部件,按一定顺序输进机器。笔画一般分成 8种:横一、竖(丨)、撇(丿)、点(丶)、折(□)、弯(□)、叉十、方(口)。部件一般归纳出一二百个。由于一般键盘上只有42个键(包括数字和标点),容纳不下这么多部件,因而有人设计中键盘,也有人利用部件形体上的相似点或出现概率的不同,而把100多个部件分布在26个字母键上。
    ③字形为主、字音为辅的编码法:
    这种编码法与字形分解法的不同在于还要利用某些字音信息。如有的方案为了简化编码规则,缩短码长,在字形码上附加字音码,有的方案为了采用标准英文电传机,将分解归纳出来的字素通过关系字的读音转化为拉丁字母。
    ④全拼音输入法:
    绝大多数是以现行的汉语拼音方案为基础进行设计。关键问题是区分同音字,因而有的方案提出“以词定字”的方法,还有的方案提出“拼音-汉字转换法”,即“汉语拼音输入 ──机内软件变换(实为查机器词表)──汉字输出”系统。
    ⑤拼音为主、字形为辅的编码法:
    一般在拼音码前面或后面再添加一些字形码。拼音码有用现行汉语拼音方案或稍加简化的,还有的为了缩短码长而把声母和韵母都用单字母或单字键表示的“双拼方案”或“双打方案”。如F键既表声母F,又表韵母ang,连击两下,便是Fang“方”字。区分同音字的字形码也多种多样。除了大部分采用偏旁部首的信息外,还有采用起末笔或采用语义类别的。


    1. ASCII码
      我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。
      上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。
      ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。

    2. 非ASCII编码
      英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。 但是,这里又出现了新的问题。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (?),在俄语编码中又会代表另一个符号。但是不管怎样,所有这些编码方式中,0—127表示的符号是一样的,不一样的只是128—255的这一段。
      至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。一个字节只能表示256种符号,肯定是不够的,就必须使用多个字节表达一个符号。比如,简体中文常见的编码方式是GB2312,使用两个字节表示一个汉字,所以理论上最多可以表示256x256=65536个符号。 中文编码的问题需要专文讨论,这篇笔记不涉及。这里只指出,虽然都是用多个字节表示一个符号,但是GB类的汉字编码与后文的Unicode和UTF-8是毫无关系的。

    3. Unicode
      正如上一节所说,世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。 可以想象,如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是Unicode,就像它的名字都表示的,这是一种所有符号的编码。 Unicode当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字“严”。具体的符号对应表,可以查询unicode.org,或者专门的汉字对应表。

    4. Unicode的问题
      需要注意的是,Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。比如,汉字“严”的unicode是十六进制数4E25,转换成二进制数足足有15位(100111000100101),也就是说这个符号的表示至少需要2个字节。表示其他更大的符号,可能需要3个字节或者4个字节,甚至更多。这里就有两个严重的问题,第一个问题是,如何才能区别unicode和ascii?计算机怎么知道三个字节表示一个符号,而不是分别表示三个符号呢?第二个问题是,我们已经知道,英文字母只用一个字节表示就够了,如果unicode统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储来说是极大的浪费,文本文件的大小会因此大出二三倍,这是无法接受的。 它们造成的结果是:1)出现了unicode的多种存储方式,也就是说有许多种不同的二进制格式,可以用来表示unicode。2)unicode在很长一段时间内无法推广,直到互联网的出现。

    5. UTF-8
      互联网的普及,强烈要求出现一种统一的编码方式。UTF-8就是在互联网上使用最广的一种unicode的实现方式。其他实现方式还包括UTF-16和UTF-32,不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一。
      UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
      UTF-8的编码规则很简单,只有二条:
      1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
      2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码
      下表总结了编码规则,字母x表示可用编码的位。
      下面,还是以汉字“严”为例,演示如何实现UTF-8编码。

      Unicode符号范围UTF-8编码方式
      0000 0000-0000 007F0xxxxxxx
      0000 0080-0000 07FF110xxxxx 10xxxxxx
      0000 0800-0000 FFFF1110xxxx 10xxxxxx 10xxxxxx
      0001 0000-0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

      已知“严”的unicode是4E25(100111000100101),根据上表,可以发现4E25处在第三行的范围内(0000 0800-0000 FFFF),因此“严”的UTF-8编码需要三个字节,即格式是“1110xxxx 10xxxxxx 10xxxxxx”。然后,从“严”的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,“严”的UTF-8编码是“11100100 10111000 10100101”,转换成十六进制就是E4B8A5。

    6. Unicode与UTF-8之间的转换
      通过上一节的例子,可以看到“严”的Unicode码是4E25,UTF-8编码是E4B8A5,两者是不一样的。它们之间的转换可以通过程序实现。
      在Windows平台下,有一个最简单的转化方法,就是使用内置的记事本小程序Notepad.exe。打开文件后,点击“文件”菜单中的“另存为”命令,会跳出一个对话框,在最底部有一个“编码”的下拉条。
      里面有四个选项:ANSI,Unicode,Unicode big endian 和 UTF-8。
      1)ANSI是默认的编码方式。对于英文文件是ASCII编码,对于简体中文文件是GB2312编码(只针对Windows简体中文版,如果是繁体中文版会采用Big5码)。
      2)Unicode编码指的是UCS-2编码方式,即直接用两个字节存入字符的Unicode码。这个选项用的little endian格式。
      3)Unicode big endian编码与上一个选项相对应。我在下一节会解释little endian和big endian的涵义。
      4)UTF-8编码,也就是上一节谈到的编码方法。
      选择完”编码方式“后,点击”保存“按钮,文件的编码方式就立刻转换好了。

    7. Little endian和Big endian
      上一节已经提到,Unicode码可以采用UCS-2格式直接存储。以汉字”严“为例,Unicode码是4E25,需要用两个字节存储,一个字节是4E,另一个字节是25。存储的时候,4E在前,25在后,就是Big endian方式;25在前,4E在后,就是Little endian方式。
      这两个古怪的名称来自英国作家斯威夫特的《格列佛游记》。在该书中,小人国里爆发了内战,战争起因是人们争论,吃鸡蛋时究竟是从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。为了这件事情,前后爆发了六次战争,一个皇帝送了命,另一个皇帝丢了王位。
      因此,第一个字节在前,就是”大头方式“(Big endian),第二个字节在前就是”小头方式“(Little endian)。
      那么很自然的,就会出现一个问题:计算机怎么知道某一个文件到底采用哪一种方式编码?
      Unicode规范中定义,每一个文件的最前面分别加入一个表示编码顺序的字符,这个字符的名字叫做”零宽度非换行空格“(ZERO WIDTH NO-BREAK SPACE),用FEFF表示。这正好是两个字节,而且FF比FE大1。
      如果一个文本文件的头两个字节是FE FF,就表示该文件采用大头方式;如果头两个字节是FF FE,就表示该文件采用小头方式。

    常见的ASCII表内容

    Bin(二进制)Oct(八进制)Dec(十进制)Hex(十六进制)缩写/字符解释
    0000 00000000NUL(null)空字符
    0000 00011101SOH(start of headline)标题开始
    ….
    0010 0001413321!叹号
    0010 0010423422双引号
    0010 0100443624$美元符
    001100006048300数字0
    001110017157399数字9
    ….
    010000011016541A大写字母A
    01011010132905AZ大写字母Z
    011000011419761a小写字母a
    011110101721227Az小写字母z
    011111111771277FDEL (delete)删除

    参考:
    字符集
    字符编码
    百度知道
    十分钟搞清字符集和字符编码

    展开全文
  • 汉字编码、输入系统和码本

    千次阅读 2021-07-28 03:51:46
    汉字编码法计算机传入我国后,在其中输入、输出和存储汉字是用户必然的需求。计算机的键盘从英文打字机键盘发展而来,用户可以方便地利用键盘输入英文,却无法直接输入中文。针对这一问题,我国的学者和计算机工作者...
  • 理清计算机汉字编码问题(上)

    千次阅读 2019-05-05 09:38:10
    ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的信息交换标准,并等同于国际标准ISO/...
  • 文章预览:一. 基本概念 1、字符集 2、编码字符集 3、字符编码方式 4、编码字符集与编码方式间对应关系二. 字符集与编码 1、ASCII字符集&编码 2、GBXXXX字符集&编码 3、UCS字符...
  • 不知道大家没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言太多,因而表示...
  • 常见编码方式

    2021-07-05 22:58:58
    在学习渗透的时候遇到很多不同的编码,把我搞的晕乎乎的,准备总结一下常见的一些编码方式,加深自己的理解。 一, URL编码 1.背景 引起歧义:url对于表单的参数是以键值对的形式例如key1=value1,对于多个键值对之间...
  • 常见中文编码方式介绍

    千次阅读 2014-06-30 13:55:46
    常见的中文编码方式:GB2312 GBK GB18030 UTF-8 GB2312
  • 一般认为Unicode编码中的汉字范围是 /^[\u2E80-\u9FFF]+$/ (11904-40959) ,但是其中很多不是汉字,或者说是可以读的汉字,本文用到的几个字典文件的汉字范围均是 /^[\u4E00-\u9FA5]+$/ ,也就是(19968-40869),...
  • 汉字编码,GB2312、GB 13000、GBK、GB18030 介绍 GB 13000、GB 18030 和 Unicode 之间的比较 Unicode 标准万国码相关介绍 汉字区位码 介绍
  • Qt中文乱码以及汉字编码

    千次阅读 2020-03-28 17:59:25
    1.Unicode是一个编码方案 Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 2.Unicode三种实现方式...
  • 【转】汉字编码常识

    千次阅读 2016-12-14 10:27:08
     (1) CSDN博主sunjing的博文《汉字编码常识》,链接为:http://blog.csdn.net/sunjing/article/details/6162439。  (2) 学步园博主www5888888的博文《谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词》,...
  • 常见各种编码格式

    千次阅读 2019-10-07 14:00:43
    一.ANSI 这里,我将ANSI作为一个大项。...不过这样说也不准确,根据我查阅的资料来看,ASCII是早于ANSI的,所以只能说ANSI是兼容ASCII的,而不能说ASCII是根据ANSI编码所得。 ASCII,他的全称为American S...
  • 汉字编码输入法综述

    2019-07-10 19:34:06
    2 汉字编码输入法综述 作者:戴石麟(sbxlm@126.com) 本章打算分基础工作、理论研究和实用系统三个方面来对汉字编码输入技术的历史和现状进行综合评述,最后指出现有技术中存在的问题并预测今后技术的发展趋势。 ...
  • 常见编码格式(中文编码

    万次阅读 2016-05-30 08:01:28
    GB2312简体中文编码,一个汉字占用2个字节,在大陆是主要的编码方式。当文章/网页中包含繁体中文、日文、韩文等时,这些内容可能无法被正确编码。 BIG5繁体中文编码,主要在台湾地区使用。 GBK支持简体及繁体中文...
  • 常见编码格式

    2021-07-22 17:42:12
    1、ascii 计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些...各个国家都像我们一样,自己的编码方式,在自己国家使用没有问题,但是国家与国家之间交流的时候就.
  • 常见几种编码介绍

    千次阅读 2020-12-01 10:52:27
    为什么要编码? 大家可以先思考个问题: 计算机是如何表示我们人类能够理解的符号的,也就是我们人类使用的语言。 人类的语言太多了,因而表示这些语言的符号太多。 我们无法用计算机中一个基本的存储...
  • 汉字输入码种类数字编码.ppt

    千次阅读 2021-07-26 07:32:41
    汉字输入码种类数字编码.ppt4、汉字编码 汉字与英文字符一样,也是一种字符,在计算机内部也是以二进制代码形式表示的,这些代码,称为汉字编码。 GB 2312-1980 使用2个字节编码,共收录6763个简体汉字,其中包括:一...
  • 字符常见编码方式详解

    千次阅读 2020-02-24 22:53:21
    本人是做嵌入式开发的,当初第一次接触MDK时,被一个问题疑惑过,那就是在keil中的汉字注释复制到别的地方会出现乱码,还有编代码的时候,总会选择UTF-8编码方式。带着这些疑问我在网上搜索了一些东西,自己整理了...
  • 常见的几种编码方式

    万次阅读 2016-05-06 14:29:30
    你了解ASCII,ANSI,Unicode,UTF-8吗,他们什么区别呢
  • 什么是编码格式从一个小问题引入我们在学习C语言的时候,一道必做的题目是将大写字母转换成小写,相信有点基础的同学都能不加思索的写出下面的代码:char toLower(char upper){if (upper >= 'A' && ...
  • 常见几种编码格式及比较

    千次阅读 2019-04-05 13:52:02
    ASCII是最常见,也是听到最多的,它总共128个,用一个字节的低7位表示,0-31是控制字符如换行、回车删除等;32~126是打印字符,可以通过键盘输入并且能够显示出来,总共128符号(其中包括32个打印不出来的控制符号...
  • 常见编码方式(ASKII、GBK、UTF-8等)

    千次阅读 2021-02-20 14:08:14
    常见编码方式1.美国1.1 ASCII2. 西欧2.1 ISO-8859-12.2 windows-12523. 中国3.1 GB23123.2 GBK3.3 GB180304. 港澳台4.1 Big55. 世界通用5.1 Unicode5.2 UTF-325.3 UTF-165.4 UTF-86.总结 1.美国 1.1 ASCII 世界上...
  • 世界上虽然各种各样的字符,但计算机发明之初没有考虑那么多,基本上只考虑了美国的需求,美国大概只需要128个字符,美国就规定了这128个字符的二进制表示方法,这个方法是一个标准,称为ASCII编码,全称是...
  • 原文链接:程序员必备:彻底弄懂常见的7种中文字符编码 文章目录一、字符编码要做什么事情?二、几种常见中文编码的关系如何?三、ASCII编码四、GB2312、GBK、GB18030编码【GB2312】【GBK】【GB18030】五、UTF8编码...
  • 字符编码(英语:...常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。
  • 汉字编码及区位码查询算法

    千次阅读 2016-12-03 07:59:35
    为了使每一个汉字一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准:GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,043
精华内容 5,617
关键字:

常见的汉字编码方案有