各种文字编码简介+常见的编码都有介绍
- 格式:doc
- 大小:36.50 KB
- 文档页数:8
汉字最基本的编码汉字最基本的编码是指汉字的字符编码方式,它是将汉字字符映射到计算机内部存储单元的一种方式。
汉字编码是计算机处理汉字信息的基础,它使计算机能够正确地显示、输入和处理汉字。
下面将介绍几种常见的汉字编码方式。
1. ASCII编码(American Standard Code for Information Interchange,美国信息交换标准代码)ASCII编码是最早用于汉字编码的一种方式,它采用7位二进制数表示字符,共计128个字符,包括英文字母、数字和一些常用符号。
然而,ASCII编码只能表示拉丁字母和一些常用字符,对于汉字来说是不够的。
2. GB2312编码(Guojia Biaozhun 2312,国家标准2312)GB2312编码是中国国家标准局于1980年发布的一种简体中文字符集编码方式。
它采用两个字节表示一个汉字,其中第一个字节的范围是0xB0-0xF7,第二个字节的范围是0xA1-0xFE。
GB2312编码共收录了6763个常用汉字和682个非汉字字符。
3. GBK编码(Guojia Biaozhun Kuozhan,国家标准扩展)GBK编码是在GB2312编码基础上的扩展,增加了更多的汉字字符。
它使用两个字节表示一个汉字,其中第一个字节的范围仍是0xB0-0xF7,而第二个字节的范围扩展到0xA1-0xFE以及0x40-0x7E、0x80-0xFE。
GBK编码共收录了21886个汉字和682个非汉字字符。
4. Unicode编码(统一码)Unicode编码是国际上通用的字符编码标准,它为世界上几乎所有的字符都指定了一个唯一的编号。
Unicode编码使用两个字节表示一个字符,可以覆盖包括汉字在内的几乎所有字符。
最早的Unicode编码是UCS-2(Universal Character Set,通用字符集)编码,采用两个字节表示一个字符,范围为0x0000-0xFFFF。
1、GB2312、GB 13000、GBK、GB18030 介绍GB 2312:又称为GB 2312-80,是一个简体中文字符集的中国国家标准,于1980年由中国国家标准总局发布,1981年5月1日实施,全称为《信息交换用汉字编码字符集基本集》,规定了6763个汉字和682个非汉字图形。
GB 13000:为了便于多个文种的同时处理,国际标准化组织下属编码字符集工作组研制了新的编码字符集标准,ISO/IEC 10646。
该标准第一次颁布是在1993年,当时只颁布了其第一部分,即ISO/IEC 10646.1: 1993,我国相应的国家标准是GB 13000.1-93《信息技术通用多八位编码字符集(UCS) 第一部分:体系结构与基本多文种平面》。
制定这个标准的目的是对世界上的所有文字统一编码,以实现世界上所有文字在计算机上的统一处理。
GBK:随着信息技术在各行业应用的深入,GB 2312 收录汉字数量不足的缺点已经初步显露出来。
例如:"镕"字现在是高频率使用字,而GB 2312 却没有为它编码,因而,政府、新闻、出版、印刷等行业和部门在使用中感到十分不便。
1995年,全世界大多数的PC 操作系统都实现了16/32 位。
GB 13000.1 的实现出现了一线曙光。
一方面为了对GB 2312 进行扩充,一方面顺应当时技术的发展向GB 13000.1 推进,同时兼顾当时最广泛采用GB 2312 内码系统。
原电子部和原国家技术监督局联合颁布了指导性技术文件《汉字内码扩展规范》1.0版,即GBK 。
在GBK的内码系统中,GB 2312 汉字所在码位保持不便,这样,保证了GBK 对GB 2312 的完全兼容。
同时,GBK 内码与GB 13000.1 代码一一对应,为GBK 向GB 13000.1 的转换提供了解决办法。
微软对GB 2312 的扩展,也就是CP936 字码表(Code Page 936)的扩展(原来的CP936 和GB 2312-80 一模一样),最初出现于Windows 95 简体中文版中。
文字编码的编码方式文字编码是将字符映射为二进制数据的过程,使计算机能够存储、传输和处理文本信息。
以下是几种常见的文字编码方式:1. ASCII(American Standard Code for Information Interchange):ASCII是最早的文字编码标准,使用7位二进制数表示128个字符,包括英文字母、数字和常见的符号。
ASCII编码不适用于非英语字符。
2. Unicode:Unicode是目前最常用的文字编码标准,用于表示全球范围内的字符集。
Unicode编码使用16位二进制数表示字符,支持包括拉丁字母、汉字、日文假名等在内的各种字符。
常见的Unicode 编码方案有UTF-8、UTF-16和UTF-32。
3. UTF-8(Unicode Transformation Format-8):UTF-8是一种可变长度的Unicode编码方案,使用8位二进制数表示字符,能够表示Unicode字符集中的所有字符。
UTF-8编码广泛用于互联网和计算机系统,它可以兼容ASCII编码,对于英文字符使用一个字节表示,而对于非英文字符使用多个字节表示。
4. UTF-16(Unicode Transformation Format-16):UTF-16是一种固定长度的Unicode编码方案,使用16位二进制数表示字符,可以表示Unicode字符集中的所有字符。
UTF-16编码主要用于某些操作系统和程序中,它可以用一个或两个字节表示一个字符,辅助平面字符使用两个字节。
5. UTF-32(Unicode Transformation Format-32):UTF-32是一种固定长度的Unicode编码方案,使用32位二进制数表示字符,可以表示Unicode字符集中的所有字符。
UTF-32编码在存储和处理上比较简单,但占用的空间较大。
需要注意的是,不同的编码方式对于相同的字符可能使用不同长度的二进制数据表示。
简述汉字的4种编码汉字作为世界上最古老的文字之一,有着悠久的历史。
为了方便计算机处理和传输汉字,人们设计了多种编码方式。
下面将简述汉字的主要四种编码。
1. ASCII编码(American Standard Code for Information Interchange,美国信息交换标准代码):ASCII是最早的一种字符编码,用于表示拉丁字母和一些常用符号。
由于最初是由美国发明的,所以只包含128个字符,包括大小写字母、数字、标点符号等。
ASCII编码对于汉字是不适用的,因此在中国不能完整地表示汉字。
2. GB2312编码:GB2312是中国国家标准局于1980年发布的汉字编码标准,它是一种双字节编码,用于表示汉字和少量非汉字字符。
GB2312编码共收录了7445个常用汉字和682个非汉字字符。
GB2312编码是汉字的首次正式编码,为后来的汉字编码奠定了基础。
3. GBK编码:GBK是GB2312编码的扩展,由中国国家标准局于1995年发布。
GBK编码兼容GB2312,并进一步扩展了汉字字符集,收录了21003个汉字和8829个非汉字字符。
GBK编码是目前广泛使用的汉字编码,支持绝大多数汉字字符。
4. Unicode编码:Unicode是国际标准化组织(ISO)制定的一种字符编码标准,用于表示全球范围内的所有字符。
Unicode编码采用了固定的编码格式,可以表示从汉字到其他任何文字的字符。
Unicode编码采用不同的实现方式,最常见的有UTF-8、UTF-16和UTF-32等。
其中,UTF-8编码是一种可变长度编码,用来表示Unicode字符集中的字符,它将每个字符映射为一个或多个字节,广泛应用于互联网和计算机系统。
总结起来,汉字的编码方式经历了从最早的ASCII编码到GB2312、GBK和Unicode编码的发展演变。
随着计算机和互联网的普及,Unicode编码成为了汉字编码的主流,尤其是UTF-8编码,在国际化和跨平台应用中被广泛使用。
举例说明生活中的编码及其编码规则编码在我们日常生活中扮演着重要的角色,它是将信息转化为特定的符号或数字的过程。
无论是文字、图像、音频还是视频,都需要通过编码来表达和传递。
在本文中,我将以中括号为主题,详细介绍生活中的编码及其编码规则。
一、什么是编码?编码是一种将信息转换为特定符号或数字的过程。
通过编码,我们可以将各种形式的信息,如文字、图像、音频和视频,转换成计算机可以识别和处理的形式。
编码使得信息能够被传输和存储,以及在需要的时候进行解码还原出原始的信息。
二、生活中的编码示例1. 文字编码文字编码是指将语言中的文字转化为计算机可以处理的二进制形式。
最常见的文字编码规则是ASCII编码(American Standard Code for Information Interchange),它将每个字符映射到一个唯一的7位或8位二进制数值。
ASCII 编码被广泛用于计算机系统之间的传输和存储。
举例来说,字母"A"在ASCII编码中对应的数值是65,字母"B"是66,通过这种方式,计算机可以识别和处理文字信息。
2. 图像编码图像编码是指将图像转化为计算机可以表示和存储的形式。
最常见的图像编码规则是JPEG编码(Joint Photographic Experts Group),它是一种有损压缩技术,可以将图像压缩成较小的文件大小,同时保留较高的图像质量。
举例来说,当我们拍摄一张照片时,相机会将图像转换为JPEG格式的文件,其中的像素点和色彩信息被编码为一系列二进制数值。
3. 音频编码音频编码是指将声音转换为计算机可以处理和存储的形式。
最常见的音频编码规则是MP3(MPEG Audio Layer 3),它是一种有损压缩技术,可以将音频文件压缩为较小的文件大小,同时保留较高的音质。
举例来说,当我们下载一首歌曲时,音频文件往往是以MP3格式的形式存储,并通过音频编码将声音转化为二进制数据。
常见的文本编码常见的文本编码包括:1. ASCII(American Standard Code for Information Interchange,美国信息交换标准代码):ASCII 编码是最早期的字符编码标准,用于表示拉丁字母、数字、标点符号和控制字符。
它使用 7 位二进制数表示 128 个字符。
2. Unicode:Unicode 是一种字符编码方案,旨在统一世界上所有字符的编码。
Unicode 包含了几乎所有已知的书写系统的字符,目前已经发展到超过143,000 个字符。
Unicode 采用 16 位或更多位的二进制数来表示字符。
3. UTF-8(Unicode Transformation Format - 8-bit,Unicode 变换格式 - 8 位):UTF-8 是一种 Unicode 编码的变体,采用可变长度的编码方式,用以表示 Unicode 字符。
UTF-8 使用 1 到 4 个字节表示一个字符,兼容 ASCII 编码。
4. UTF-16:UTF-16 是一种 Unicode 编码,使用 16 位(2 个字节)来表示大部分字符,但对于辅助平面的字符(超过基本多文种平面的字符),则需要使用 4 个字节来表示。
5. ISO-8859-1(Latin-1):ISO-8859-1 是国际标准化组织定义的单字节字符编码,用于表示拉丁字母字符集的编码。
6. GB2312:GB2312 是中华人民共和国国家标准,用于表示简体中文字符集的编码。
7. GB18030:GB18030 是中华人民共和国国家标准,是一种多字节字符编码方案,用于表示中文字符集的编码,包括简体中文、繁体中文和日文等。
这些编码在不同的语言、地区和应用中具有不同的使用范围和优势,选择合适的编码取决于具体的需求和环境。
汉字的编码方式以及相应的关系汉字的编码方式是汉字在计算机中的表示方法,即将汉字转化为二进制码以便计算机识别和处理。
在汉字的编码方式中,最常用的有GBK、GB2312、Unicode、UTF-8等。
1. GBK(国标码或扩展码)GBK是中国国家标准(GB2312)的扩展,使用两个字节表示一个汉字,因此可以表示包括简体汉字、繁体汉字、日文汉字在内的全部汉字字符。
GBK编码方式采用统一的编码标准,保证了不同计算机之间的汉字编码的兼容性。
2. GB2312(国标码)GB2312是中国国家标准的第一代汉字编码方式,使用两个字节表示一个汉字。
GB2312只包含了中华人民共和国境内的汉字和一些常用的符号、拉丁字母等。
GB2312的编码方式已经比较古老且局限性较大,不能涵盖所有汉字字符。
3. Unicode(统一码)Unicode是一种全球通用的字符编码标准,旨在为世界上几乎所有的书写系统都提供一个唯一的数字代码。
它使用两个字节(16位)表示一个字符,可以表示世界上几乎所有的字符,包括汉字。
Unicode是一种通用的编码方式,具有国际性和兼容性。
4. UTF-8(Unicode转化格式-8位)UTF-8是一种用于Unicode的可变长度字符编码,它可以使用一至四个字节表示一个字符,根据不同的字符而变化字节长度。
UTF-8编码方式兼容ASCII码,对于表示ASCII字符的部分,其字节和ASCII码完全相同,因此在ASCII字符范围内,UTF-8编码和ASCII码是相同的。
汉字编码方式之间的关系:- GB2312和GBK是中国国家标准,GB2312是GBK的子集,GBK是GB2312的扩展。
GBK编码方式在GB2312的基础上增加了更多的字符,以满足更广泛的需求,可以兼容GB2312。
- Unicode是全球通用的字符编码标准,与GB2312和GBK是不同的编码方式,Unicode可以表示更多的字符,并且具有兼容性和国际性。
字符编码简介:ASCII,Unicode,UTF-8,GB2312字符编码简介:ASCII,Unicode,UTF-8,GB23121. 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种符号,肯定是不够的,就必须使用多个字节表达一个符号。
文字编码的种类
文字编码主要分为以下几种:
汉字输入码:这是为汉字设计的一种便于输入计算机的代码。
汉字交换码:用于计算机系统内传输信息。
汉字内码:在计算机内部用于处理和交换的汉字代码。
汉字字形码:用于输出汉字的代码。
此外,还有一些具体的编码格式,如Unicode、UTF-8、GB2312、BIG5和GBK等,这些编码在计算机中用于表示不同语言的文字。
Unicode编码:通常由两个字节组成,称作USC-2,个别偏僻字由四个字节组成,称作USC-4。
前127个还表示原来ASCII码里的字符,只不过由一个字节变成了两个字节。
UTF-8编码:Unicode编码的一种,Unicode用一些基本的保留字符制定了三套编码方式,它们分别为UTF-8,UTF-16,UTF-32。
在UTF-8中,字符是以8位序列来编码的,用一个或几个字节来表示一个字符。
GB2312编码:GB2312简体中文编码,一个汉字占用2个字节,在大陆是主要的编码方式。
BIG5编码:称为繁体中文编码,主要在台湾地区使用。
GBK编码:作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。
位数:使用2个字节表示,可表示21886个字符。
可表示
27484个文字。
以上信息仅供参考,如有需要,建议咨询计算机专业人士。
汉字编码的分类汉字是中华民族的独特文化象征,它的记录方式在不同的时期也经历了不同的发展。
为了能够在电脑和网络等数字化环境中准确地表示和储存汉字,汉字编码技术应运而生。
汉字编码的分类根据其不同的标准和应用领域而有所不同。
本文将介绍几种常见的汉字编码分类。
一、GB2312编码GB2312编码是中国国家标准局于1980年发布的一种汉字编码标准,是最早被广泛应用的汉字编码之一。
GB2312编码采用双字节表示一个汉字,共收录了6763个常用汉字和682个生僻字。
该编码不仅包含了繁体字的简化字形,还考虑到了中国各个地区的方言差异。
GB2312编码被广泛应用于计算机操作系统、文字处理软件和打印机等设备。
二、Unicode编码Unicode编码是一种国际标准的字符编码方案,旨在成为全球范围内所有文字的统一编码标准。
Unicode编码采用了统一的字符映射方案,为每个字符分配了一个唯一的代码点。
其中,汉字使用双字节表示,每个字节可以取值范围是0x00-0xFF。
Unicode编码的优势在于能够准确地表示世界上所有的文字,包括各种语言和符号。
目前,Unicode编码已经被广泛应用于各种操作系统、浏览器和应用软件中。
三、UTF-8编码UTF-8编码是一种对Unicode编码进行可变长度编码的方案,它主要用于在互联网上传输和储存文本信息。
UTF-8编码根据字符的不同范围采用1到4个字节进行编码,对于ASCII字符(0x00-0x7F),UTF-8编码和ASCII编码是兼容的,使用一个字节进行表示。
对于汉字等非ASCII字符,UTF-8编码使用多个字节进行表示,能够准确地表示Unicode字符集中的所有字符。
UTF-8编码在国际化和跨平台应用中得到广泛应用,成为互联网上最常用的字符编码方式。
四、GBK编码GBK编码是国家标准GB2312的扩展编码,也是一种常见的汉字编码方案。
由于GB2312编码的局限性,无法表示一些罕见字和繁体字,GBK编码在保留GB2312编码的基础上,又增加了近7000个字符。
汉字编码分类汉字编码是指将汉字字符映射到计算机可识别的数字或二进制表示的过程。
在计算机领域,常见的汉字编码方式包括:* GB2312:GB2312 是一种简体中文字符集编码,它包含了6763个常用汉字和682个非汉字字符,是中国国家标准的一部分。
GB2312使用两个字节表示一个汉字。
* GBK:GBK 是GB2312的扩展,包括更多的汉字字符和符号,支持超过21,000个字符。
GBK同样使用两个字节表示一个汉字。
* GB18030:GB18030是中国国家标准的一部分,是GB2312和GBK的扩展,支持更多的字符,包括繁体中文和少数民族文字。
GB18030支持1到4个字节表示一个字符。
* Unicode:Unicode是一种用于字符编码的标准,包括世界各种语言的字符。
汉字在Unicode中有唯一的编码,通常使用两个字节表示一个汉字。
UTF-8、UTF-16和UTF-32是Unicode的不同编码方式。
* UTF-8:UTF-8 是一种可变长度的Unicode字符编码,使用1到4个字节表示字符。
UTF-8在表示ASCII字符时只需要一个字节,而对于汉字等字符需要多个字节。
* UTF-16:UTF-16是Unicode的另一种字符编码方式,使用2或4个字节表示一个字符。
* Big5:Big5是一种繁体中文字符集编码,主要用于台湾地区。
Big5使用两个字节表示一个汉字。
这些汉字编码方式在不同的地区、系统和应用中有着不同的应用场景。
在选择使用时,需要根据具体的需求、系统支持以及国际化考虑来确定合适的编码方式。
现代应用中,推荐使用Unicode及其变体(UTF-8、UTF-16等)来支持更广泛的字符范围。
汉字的四种主要编码
汉字是中国传统的文字,有着悠久的历史和丰富的文化内涵。
在现代化的过程中,汉字也随之发生了各种编码方式的变化,主要包括以下四种:
一、GB2312编码
GB2312编码是中国国家标准,也是最早的汉字编码方式之一。
该编码包含了6763个汉字,其中包括了基本的汉字、部首和组合字。
GB2312编码被广泛应用于计算机中文处理系统,是汉字编码的基础。
二、GBK编码
GBK编码是GB2312编码的扩展,也是中国国家标准。
该编码增加了多达21003个汉字,包括了繁体汉字、异体字和部首等。
GBK编码也被广泛应用于计算机中文处理系统,是目前最常用的汉字编码方式之一。
三、Unicode编码
Unicode编码是一种国际通用的编码方式,旨在解决各种语言的文字编码问题。
该编码包含了大量的字符集和编码方式,其中包括了汉字、拉丁字母和符号等。
Unicode编码支持多种语言的文字处理,是全球范围内最通用的编码方式之一。
四、UTF-8编码
UTF-8编码是一种基于Unicode编码的可变长度编码方式,可以表示任意Unicode字符。
该编码使用1到4个字节来表示不同的字符,具有节省存储空间、兼容ASCII码和跨平台等优点。
UTF-8编码也被
广泛应用于计算机系统中,是目前最流行的汉字编码方式之一。
总之,汉字编码方式经历了多年的发展和变革,目前已经形成了多种不同的编码方式。
这些编码方式在计算机中文处理、国际化交流等方面发挥着重要作用,对汉字的传播和保护都有着重要意义。
常用的中文编码一、引言在我们日常生活和工作中,中文信息的传输和处理离不开编码。
编码是一种将字符转换为计算机可以识别和处理的二进制数据的机制。
了解和掌握常用的中文编码,对于我们更好地使用计算机和网络具有重要意义。
二、常用的中文编码概述1.GBK编码GBK是我国制定的一种汉字编码标准,全称为“汉字内码扩展规范”。
GBK编码兼容GB2312编码,可以表示国标GB18030-2000中的所有汉字。
GBK编码共有21个字节,第一个字节为符号位,其余16个字节为编码位。
2.GB2312编码GB2312是我国最早制定的一种汉字编码标准,主要用于表示简体汉字。
GB2312编码包含一级汉字和二级汉字,一级汉字共有3755个,二级汉字共有3506个。
GB2312编码采用两个字节表示一个汉字。
3.BIG5编码BIG5编码是台湾地区常用的一种汉字编码标准,主要用于表示繁体汉字。
BIG5编码共收录13068个汉字,采用两个字节表示一个汉字。
4.UTF-8编码UTF-8编码是一种广泛应用于互联网的编码标准,可以表示世界上几乎所有的字符集,包括中文、英文、数字和特殊符号等。
UTF-8编码采用1到4个字节表示一个字符,最多可表示65536个字符。
三、编码转换实例在日常生活中,我们经常会遇到不同编码之间的转换。
例如,在网页设计中,为了让简体中文用户和繁体中文用户都能正常显示文字,需要对文本进行编码转换。
这时,可以使用一些专门的编码转换工具,如Notepad++、Sublime Text等,也可以使用在线编码转换服务。
四、编码在日常生活中的应用1.文本编辑和阅读:掌握不同编码标准,可以使我们在使用文本编辑器和阅读器时,正确地显示和处理中文文字。
2.网页设计:了解编码转换,可以让我们在设计跨语言、跨平台的网页时,确保文字的正确显示。
3.数据库存储和检索:掌握编码知识,有助于我们在设计和操作数据库时,正确地存储和检索中文信息。
4.跨系统通信:在不同操作系统和软件之间传输中文数据时,了解编码转换原理,可以避免数据丢失和乱码现象。
常用的中文编码
(原创版)
目录
1.中文编码的概述
2.常用的中文编码方式
2.1 GBK 编码
2.2 UTF-8 编码
2.3 GB2312 编码
2.4 BIG5 编码
正文
中文编码是计算机用来表示和存储中文字符的一种编码方式。
随着中文在计算机领域的广泛应用,出现了许多种中文编码方式。
下面我们来介绍一下常用的中文编码。
1.GBK 编码
GBK 编码是一种双字节编码,它能表示 65536 个汉字,包括了大部分常用的简体和繁体汉字。
GBK 编码是我国国家标准之一,主要用于简体中文环境的计算机系统。
2.UTF-8 编码
UTF-8 编码是一种可变长度的编码方式,它可以表示世界上所有的字符,包括中文字符。
UTF-8 编码使用三个字节来表示一个汉字,其兼容性好,被广泛应用于各种计算机系统和互联网领域。
3.GB2312 编码
GB2312 编码是我国最早制定的中文编码标准,它只能表示 6763 个汉字,包括常用的简体汉字和大部分繁体汉字。
由于 GB2312 编码的字符
集较小,现在已经逐渐被其他编码方式取代。
4.BIG5 编码
BIG5 编码是一种双字节编码,能表示 13053 个汉字,主要用于繁体中文环境的计算机系统。
BIG5 编码在台湾、香港等地区广泛使用,但现在也逐渐被 UTF-8 编码取代。
总的来说,中文编码的发展和演变,使得中文在计算机领域的应用越来越广泛。
简述汉字编码的种类和用途
汉字编码是指对汉字进行数字化表示的方式。
目前常用的汉字编码有多种种类,每种都有其特定的用途。
1. GB2312编码: GB2312是中国国家标准委员会于1980年发
布的汉字编码标准,包括了6,763个常用汉字以及非汉字字符。
它是最早的汉字编码标准,用于表示简体字。
2. GBK编码: GBK是在GB2312基础上进行了扩展的汉字编码标准,于1995年发布。
它包括了21,893个汉字和一些非汉字
字符,适用于中文字符的表示。
3. GB18030编码: GB18030是中国国家标准委员会于2005年
发布的扩展汉字编码标准,包括了27,533个汉字以及大量非
汉字字符。
它是对GB2312和GBK编码的进一步扩展,能够
表示目前已知的所有汉字。
4. Unicode编码: Unicode是一种国际标准字符编码体系,可以
表示世界上几乎所有的文字。
其中,汉字部分被统称为CJK
统一汉字,被分为基本汉字区、扩展A区和扩展B区等。
5. UTF-8编码: UTF-8是一种变长编码形式,可以用来表示Unicode字符集中的所有字符。
它是当前互联网上最常用的字
符编码方式之一,具有较好的兼容性和扩展性。
这些汉字编码标准在计算机系统中用于汉字的输入、存储和显示,以及在通信、互联网、数据库等领域中的文本处理。
不同
的汉字编码标准有不同的兼容性和适用范围,选择合适的编码方式可以确保汉字正确地传输和显示。
各种文字编码简介ASCIIASCII码是7位编码,编码范围是0×00-0×7F。
ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。
其中0×00-0×20和0×7F共33个控制字符。
只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。
HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。
早期很多邮件系统也只支持ASCII编码,为了传输中文邮件必须使用BASE64或者其他编码方式。
GB2312GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。
区位码一般用10进制数来表示,如1601就表示16区1位,对应的字符是“啊”。
在区位码的区号和位号上分别加上0xA0就得到了GB2312编码。
区位码中01-09区是符号、数字区,16-87区是汉字区,10-15和88-94是未定义的空白区。
它将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。
一级汉字是按照拼音排序的,这个就可以得到某个拼音在一级汉字区位中的范围,很多根据汉字可以得到拼音的程序就是根据这个原理编写的。
GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。
可以用繁体汉字测试某些系统是不是只支持GB2312编码。
GB2312的编码范围是0xA1A1-0×7E7E,去掉未定义的区域之后可以理解为实际编码范围是0xA1A1-0xF7FE。
EUC-CN可以理解为GB2312的别名,和GB2312完全相同。
区位码更应该认为是字符集的定义,定义了所收录的字符和字符位置,而GB2312及EUC-CN是实际计算机环境中支持这种字符集的编码。
HZ和ISO-2022-CN是对应区位码字符集的另外两种编码,都是用7位编码空间来支持汉字。
区位码和GB2312编码的关系有点像 Unicode和UTF-8。
GBKGBK编码是GB2312编码的超集,向下完全兼容GB2312,同时GBK收录了Unicode基本多文种平面中的所有CJK汉字。
同 GB2312一样,GBK也支持希腊字母、日文假名字母、俄语字母等字符,但不支持韩语中的表音字符(非汉字字符)。
GBK还收录了GB2312不包含的汉字部首符号、竖排标点符号等字符。
GBK的整体编码范围是为0×8140-0xFEFE,不包括低字节是0×7F的组合。
高字节范围是0×81-0xFE,低字节范围是0×40-7E和0×80-0xFE。
低字节是0×40-0×7E的GBK字符有一定特殊性,因为这些字符占用了ASCII码的位置,这样会给一些系统带来麻烦。
有些系统中用0×40-0×7E中的字符(如“|”)做特殊符号,在定位这些符号时又没有判断这些符号是不是属于某个 GBK字符的低字节,这样就会造成错误判断。
在支持GB2312的环境下就不存在这个问题。
需要注意的是支持GBK的环境中小于0×80的某个字节未必就是ASCII符号;另外就是最好选用小于0×40的ASCII符号做一些特殊符号,这样就可以快速定位,且不用担心是某个汉字的另一半。
Big5编码中也存在相应问题。
CP936和GBK的有些许差别,绝大多数情况下可以把CP936当作GBK的别名。
GB18030GB18030编码向下兼容GBK和GB2312,兼容的含义是不仅字符兼容,而且相同字符的编码也相同。
GB18030收录了所有Unicode3.1中的字符,包括中国少数民族字符,GBK不支持的韩文字符等等,也可以说是世界大多民族的文字符号都被收录在内。
GBK和GB2312都是双字节等宽编码,如果算上和ASCII兼容所支持的单字节,也可以理解为是单字节和双字节混合的变长编码。
GB18030编码是变长编码,有单字节、双字节和四字节三种方式。
GB18030的单字节编码范围是0×00-0×7F,完全等同与ASCII;双字节编码的范围和GBK相同,高字节是0×81-0xFE,低字节的编码范围是0×40-0×7E和0×80-FE;四字节编码中第一、三字节的编码范围是0×81-0xFE,二、四字节是0×30-0×39。
Windows中CP936代码页使用0×80来表示欧元符号,而在GB18030编码中没有使用0×80编码位,用其他位置来表示欧元符号。
这可以理解为是GB18030向下兼容性上的一点小问题;也可以理解为0×80是CP936对GBK的扩展,而GB18030只是和GBK兼容良好。
BIG5Big5是双字节编码,高字节编码范围是0×81-0xFE,低字节编码范围是0×40-0×7E和0xA1-0xFE。
和GBK相比,少了低字节是0×80-0xA0的组合。
0×8140-0xA0FE是保留区域,用于用户造字区。
Big5收录的汉字只包括繁体汉字,不包括简体汉字,一些生僻的汉字也没有收录。
GBK收录的日文假名字符、俄文字符Big5也没有收录。
因为Big5当中收录的字符有限,因此有很多在Big5基础上扩展的编码,如倚天中文系统。
Windows系统上使用的代码页CP950也可以理解为是对Big5的扩展,在Big5的基础上增加了7个汉字和一些符号。
Big5编码对应的字符集是GBK字符集的子集,也就是说Big5收录的字符是GBK收录字符的一部分,但相同字符的编码不同。
因为Big5也占用了ASCII的编码空间(低字节所使用的0×40-0×7E),所以Big5编码在一些环境下存在和GBK编码相同的问题,即低字节范围为0×40-0×7E的字符有可能会被误处理,尤其是低字节是0×5C(”/”)和0×7C(”|”)的字符。
可以参考GBK一节相应说明。
尽管有些区别,大多数情况下可以把CP950当作Big5的别名。
ISO-8859-1ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0×00-0xFF,0×00-0×7F之间完全和ASCII一致,0×80-0×9F之间是控制字符,0xA0-0xFF之间是文字符号。
ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。
欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。
因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。
换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。
这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。
ASCII 编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。
Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。
UCS-2和UTF-16Unicode组织和ISO组织都试图定义一个超大字符集,目的是要涵盖所有语言使用的字符以及其他学科使用的一些特殊符号,这个字符集就是通用字符集(UCS,Universal Character Set)。
这两个组织经过协调,虽然在各自发展,但定义的字符位置是完全一致的。
ISO相应的标准是ISO 10646。
Unicode和ISO 10646都在不断的发展过程中,所以会有不同的版本号来标明不同的发展阶段,每个Unicode版本号都能找到相对应的ISO 10646版本号。
ISO 10646标准定义了一个31位的字符集。
前两个字节的位置(0×0000-0xFFFD)被称为基本多语言面(Basic Multilingual Plane, BMP),超出两个字节的范围称作辅助语言面。
BMP基本包括了所有语言中绝大多数字符,所以只要支持BMP就可以支持绝大多数场合下的应用。
Unicode 3.0对应的字符集在BMP范围内。
UCS字符集为每个字符分配了一个位置,通常用“U”再加上某个字符在UCS中位置的16进制数作为这个字符的UCS表示,例如“U+0041”表示字符“A”。
UCS字符U+0000到U+00FF与ISO-8859-1完全一致。
UCS-2、UTF-16是UCS字符集(或者说是Unicode字符集)实际应用中的具体编码方式。
UCS-2是两个字节的等宽编码,因为只是使用了两个字节的编码空间,所以只能对BMP中的字符做编码。
UTF-16是变长编码,用两个字节对BMP内的字符编码,用4个字节对超出BMP范围的辅助平面内的字符作编码。
UCS-2不同于GBK和Big5,它是真正的等宽编码,每个字符都使用两个字节,这个特性在字符串截断和字符数计算时非常方便。
UTF-16是UCS-2的超集,UTF-16编码的两字节编码方式完全和UCS-2相同,也就是说在BMP 的框架内UCS-2完全等同与UTF-16。
实际情况当中常常把UCS-16当作UCS-2的别名。
UCS-2和UTF-16在存储和传输时会使用两种不同的字节序,分别是big endian和little endian (大尾和小尾)。
例如“啊”(U+554A)用big endian表示就是0×554A,用little endian表示就是0×4A55。
UCS-2和UTF-16默认的字节序是big endian方式。
在传输过程中为了说明字节序需要在字节流前加上BOM(Byte order Mark),0xFEFF表示是big endian,0xFFFE表示是little endian。
UCS-2BE、UCS-2LE是实际应用中使用的编码名称,对应着big endian和little endian,UTF-16BE、UTF-16LE也是如此。
因为默认是BE字节序,所以可以把UCS-2当做是UCS-2BE 的别名。
在UCS编码中有一个叫做“ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是U+FEFF,是个没有实际意义的字符。
UCS规范建议我们在传输字节流前,先传输字符“ZERO WIDTH NO-BREAK SPACE”,如果传输的ZERO WIDTH NO-BREAK SPACE是0xFEFF就说明是big endian,反之就是little endian。