字符编码详解
字符编码介绍
字符编码介绍字符编码是一种将字符集中的字符映射到数字代码的方法。
它是为了在计算机中存储和传输文本而设计的。
计算机内部只能处理数字,因此需要一种方式将字符映射到数字。
以下是一些常见的字符编码:1. ASCII(American Standard Code for Information Interchange):- ASCII 是最早的字符编码,定义了128个字符,包括英文字母、数字、标点符号和一些控制字符。
- ASCII 使用7位二进制数(0-127)来表示字符。
2. ISO-8859:- ISO-8859 是ASCII 的扩展,定义了不同的字符集,支持多种语言。
-不同版本的ISO-8859 针对不同语言和地区,例如ISO-8859-1 用于西欧语言,ISO-8859-5 用于西里尔文。
3. Unicode:- Unicode 是一个更为全面的字符编码标准,旨在涵盖世界上所有的字符。
- Unicode 为每个字符分配了一个唯一的数字码点,可以使用不同的编码方案来表示这些码点,其中最常见的是UTF-8、UTF-16 和UTF-32。
- UTF-8 使用可变长度的编码,每个字符的长度从1到4个字节不等;UTF-16 使用16位或32位编码,取决于具体实现;UTF-32 使用32位固定长度的编码。
4. UTF-8(Unicode Transformation Format-8):- UTF-8 是一种可变长度的Unicode 编码,它使用1到4个字节来表示字符。
- ASCII 字符在UTF-8 中仍然只使用一个字节,这使得UTF-8 向后兼容ASCII。
5. UTF-16:- UTF-16 是Unicode 的另一种编码方式,它使用16位或32位来表示字符。
-多数字符使用16位表示,辅助平面(Supplementary Planes)的字符使用32位表示。
6. UTF-32:- UTF-32 是Unicode 的一种编码,每个字符使用32位来表示,固定长度。
常用字符集编码详解:ASCII 、GB2312、GBK、GB18030、...
ASCIIASCII码是7位编码,编码范围是0x00-0x7F。
ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。
其中0x00-0x20和0x7F共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-0x7E7E,去掉未定义的区域之后可以理解为实际编码范围是0xA1A1-0xF7FE。
EUC-CN可以理解为GB2312的别名,和GB2312完全相同。
区位码更应该认为是字符集的定义,定义了所收录的字符和字符位置,而GB2312及EUC-CN是实际计算机环境中支持这种字符集的编码。
HZ和ISO- 2022-CN是对应区位码字符集的另外两种编码,都是用7位编码空间来支持汉字。
字符的编码方法
字符的编码方法
字符的编码方法是指将字符映射成二进制数字的过程。
在计算机中,每个字符都对应着一个数字,这个数字就是字符的编码。
为了能够在不同的计算机之间传输和存储字符,需要确定一种标准的编码方式。
在计算机中,常见的字符编码方式有ASCII码、Unicode和UTF-8。
ASCII码是最早的字符编码方式,在ASCII码中,每个字符都占用一个字节,即8个比特位。
由于ASCII码只能表示128个字符,所以后来发展出了Unicode编码。
Unicode编码可以表示几乎所有的字符,包括世界上所有的语言文字,但是它的缺点是编码过于复杂,需要占用更多的存储空间。
为了解决这个问题,人们发展出了UTF-8编码方式。
UTF-8编码方式是一种变长编码方式,它可以根据不同的字符长度进行编码,可以表示世界上所有的字符,并且在存储空间上比Unicode更加节省。
UTF-8编码方式被广泛应用于各种操作系统和应用程序中。
在日常生活和计算机领域中,字符编码方式是一个非常重要的概念,它关系到计算机系统的数据传输和存储,以及各种通信协议和标准的制定。
因此,熟悉字符编码方式的基本原理和应用非常有必要。
- 1 -。
字符编码的介绍和特点
字符编码的介绍和特点
字符编码是一种将字符映射为二进制数字的方式,使得计算机能够识别和处理
文本数据。
在计算机系统中,每个字符都被赋予一个唯一的编码,以便在存储和传输中进行表示。
字符编码的主要特点如下:
1. 映射关系:字符编码通过建立字符与二进制数字之间的映射关系,将每个字
符都对应一个唯一的编码。
不同的字符编码方案采用不同的映射规则,例如ASCII 码、Unicode和UTF-8等。
2. 多样性:由于不同语言和字符集的存在,字符编码需要能够支持多种字符集,包括拉丁字母、汉字、特殊符号等。
Unicode就是一种支持全球多种字符集的编码
标准。
3. 兼容性:字符编码需要考虑与现有系统的兼容性,使得旧的字符编码方案能
够与新的编码方案共存。
例如,UTF-8就是一种兼容ASCII码的字符编码方式,可以在ASCII码范围内使用相同的编码。
4. 空间效率:字符编码需要保证在存储和传输时尽可能的节省空间。
一些编码
方案,如UTF-8,采用变长编码方式,根据字符的不同而改变编码字节的长度,从而实现更高的空间效率。
5. 可扩展性:随着新的字符集和字符需求的出现,字符编码需要具备可扩展性,即能够灵活地添加新的字符编码规则和映射关系,以应对新的需求。
总而言之,字符编码在计算机中起到了至关重要的作用,使得计算机能够对文
字进行处理和展示。
通过合适的字符编码方案,可以实现多语言文本的互通和兼容,从而促进了全球信息的交流与共享。
几种常见 字符编码详解
编程综合blog.minidx./2021/10/22/1570.htmlblog.minidx./2021/11/06/1607.htmlblog.minidx./2021/12/06/1689.htmlblog.minidx./2021/12/09/1700.html摘录1:GBK范围:1st byte | 2nd byte0×81~0xfe | 0×40~0×7e and 0×80~0xfeBIG5范围:1st byte | 2nd byte0×81~0xfe | 0×40~0×7e and 0xa1~0xfe下面是来自libiconv的关于GBK〔cp936〕和BIG5〔cp950〕的两段代码,相信还是相当有用的。
摘录2:一预备知识1,字符:字符是抽象的最小文本单位。
它没有固定的形状〔可能是一个字形〕,而且没有值。
“A〞是一个字符,“€〞〔德国、法国和许多其他欧洲国家通用货币的标志〕也是一个字符。
“中〞“国〞这是两个汉字字符。
字符仅仅代表一个符号,没有任何实际值的意义。
2,字符集:字符集是字符的集合。
例如,汉字字符是中国人最先创造的字符,在中文、日文、韩文和越南文的书写中使用。
这也说明了字符和字符集之间的关系,字符组成字符集〔iso8859-1,GB2312/GBK,unicode〕。
3,代码点:字符集中的每个字符都被分配到一个“代码点〞。
每个代码点都有一个特定的唯一数值,称为标值。
该标量值通常用十六进制表示。
4,代码单元:在每种编码形式中,代码点被映射到一个或多个代码单元。
“代码单元〞是各个编码方式中的单个单元。
代码单元的大小等效于特定编码方式的位数:UTF-8 :UTF-8 中的代码单元由 8 位组成;在 UTF-8 中,因为代码单元较小的缘故,每个代码点常常被映射到多个代码单元。
代码点将被映射到一个、两个、三个或四个代码单元;UTF-16 :UTF-16 中的代码单元由 16 位组成;UTF-16 的代码单元大小是 8 位代码单元的两倍。
常用字符集编码详解:ASCII、GB2312、GBK、GB18030、...
ASCIIASCII 码是7位编码,编码范围是0x00-0x7F ASCII 字符集包括英文字母、 阿拉伯数字和标点符号等字符。
其中 0x00-0x20和0x7F 共33个控制字符。
只支持ASCI 码的系统会忽略每个字节的最高位,只认为低 7位是有效位。
HZ 字符编码就是早期为了在只支持 7位ASCII 系统中传输中文而设计的编码。
早期很多邮件系统也只支持ASCII 编码,为了传输中文邮件必须使用 BASE64或 者其他编码方式。
GB2312GB2312是基于区位码设计的,区位码把编码表分为 94个位,每个字符的区号和位号组合起来就是该汉字的区位码。
10进制数来表示,如 1601就表示 16区1 位,对应的字符是 区号和位号上分别加上0xA0就得到了 GB2312编码。
区位码中 01-09区是符号、数字区, 16-87区是汉字区,未定义的空白区。
它将收录的汉字分成两级:第一级是常用汉字计 3755 个,置于 16-55 区,按汉语拼音字母 /笔形顺序排 列;第二级汉字是次常用汉字计 3008 个,置于 56-87 区,按部首 /笔画顺序排 列。
一级汉字是按照拼音排序的,这个就可以得到某个拼音在一级汉字区位中 的范围,很多根据汉字可以得到拼音的程序就是根据这个原理编写的。
GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片 假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。
可以 用繁体汉字测试某些系统是不是只支持 GB2312编码。
GB2312的编码范围是0xA1-0x7E 去掉未定义的区域之后可以理解为实际 编码范围是 0xA1-0xF7FE 。
EUC-CN 可以理解为GB2312的别名,和GB2312完全相同。
区位码更应该认为是字符集的定义,定义了所收录的字符和字符位置,而 94个区,每个区对应 区位码一般用 “啊”。
在区位码的10-15和 88-94是GB2312及EUC-CN是实际计算机环境中支持这种字符集的编码。
字符和汉字编码
字符和汉字编码一、字符集编码字符集编码是指将字符集中的字符转换为计算机可识别的二进制编码。
常见的字符集编码包括ASCII编码、GB2312编码、GBK编码、UTF-8编码等。
1. ASCII编码:ASCII编码是最常用的字符集编码,它包含了128个字符,每个字符用一个字节的二进制数表示。
2. GB2312编码:GB2312编码是中国大陆使用的字符集编码,它包含了6763个汉字和一些其他的字符。
3. GBK编码:GBK编码是中国大陆使用的扩展字符集编码,它包含了20902个汉字和一些其他的字符。
4. UTF-8编码:UTF-8编码是一种可变长度的字符集编码,它包含了几乎所有的语言字符,包括汉字。
二、汉字编码汉字编码是指将汉字转换为计算机可识别的二进制编码。
常见的汉字编码包括GB2312编码、GBK编码、UTF-8编码等。
1. GB2312编码:GB2312编码是中国大陆使用的汉字编码,它包含了6763个汉字。
2. GBK编码:GBK编码是中国大陆使用的扩展汉字编码,它包含了20902个汉字。
3. UTF-8编码:UTF-8编码是一种可变长度的汉字编码,它包含了几乎所有的语言字符,包括汉字。
三、字符和汉字的输入方法字符和汉字的输入方法包括键盘输入、手写输入、语音输入等。
1. 键盘输入:通过键盘输入字符和汉字,是最常用的输入方法。
2. 手写输入:通过手写输入汉字,通常需要使用专门的识别软件。
3. 语音输入:通过语音输入汉字,通常需要使用语音识别软件。
四、字体和字形的表示字体和字形的表示包括矢量字体和点阵字体。
矢量字体是一种数学描述的字体,可以无损放大;点阵字体是一种像素点的集合,放大后会出现失真。
五、编码标准编码标准是指制定字符集编码和汉字编码的规范和标准。
中国制定了《信息交换用汉字编码字符集》等标准,国际上制定了ISO/IEC 10646等标准。
六、字符和汉字的输出方法字符和汉字的输出方法包括屏幕输出、打印机输出、文件输出等。
中文编码解析
中文编码解析中文编码解析是指将中文字符转换为计算机可识别的数字编码的过程。
常见的中文编码方式包括UTF-8、GBK、GB2312和BIG5等。
1. UTF-8(Unicode Transformation Format-8 bits):UTF-8是一种可变长度的字符编码方式,可以表示任何Unicode标准中的字符。
UTF-8编码的字符以1到4个字节表示,最多可以表示21位的数字。
UTF-8编码是目前互联网上最常见的编码方式之一,因为它可以兼容ASCII 编码,并且支持全球范围内的语言文字。
2. GBK(GuóBǐng Kǎo):GBK是一种双字节字符编码方式,用于简体中文。
它兼容GB2312编码,但支持更多的字符集。
GBK编码的字符以1到2个字节表示,最多可以表示16位的数字。
3. GB2312(GuóBǐng 2312):GB2312是一种单字节字符编码方式,用于简体中文。
它支持6000多个常用汉字和一些标点符号、数字和字母。
GB2312编码的字符以1个字节表示,最多可以表示94位的数字。
4. BIG5(Bǐng Wén GuóTōng):BIG5是一种双字节字符编码方式,用于繁体中文。
它兼容GB2312编码,但支持更多的字符集。
BIG5编码的字符以1到2个字节表示,最多可以表示16位的数字。
在进行中文编码解析时,需要先将中文字符转换为相应的编码方式,然后再进行传输或存储。
在接收或读取时,需要将编码方式还原为中文字符,以便正确显示或处理。
常见的中文编码解析工具包括iconv、libiconv等。
中文编码解析是指将中文字符转换为计算机可识别的数字编码的过程。
常见的中文编码方式包括UTF-8、GBK、GB2312和BIG5等。
1. UTF-8(Unicode Transformation Format-8 bits):UTF-8是一种可变长度的字符编码方式,可以表示任何Unicode标准中的字符。
计算机常用编码
计算机常用编码一、字符编码字符编码是将字符集中的每个字符与一个唯一的数字码相对应的过程。
常见的字符编码标准包括ASCII码、Unicode、GB2312、GBK和UTF-8等。
ASCII码是最早的字符编码标准,它将128个字符分配了0-127的码值。
Unicode则是一个跨平台的字符编码标准,它为每个字符提供了一个唯一的码值,适用于国际化的应用。
GB2312和GBK是中国常用的字符编码标准,支持中文字符的编码。
UTF-8是一种可变长度字符编码,它支持多种语言字符,并且兼容ASCII码。
二、数值编码数值编码是指将数值数据转换为二进制或其他进制表示的过程。
常见的数值编码方式包括二进制、十进制、十六进制等。
二进制是计算机内部处理数据的格式,所有的信息都被表示成二进制形式。
十进制是我们日常使用的数字表示方式,而十六进制则是一种简化的数字表示方式,它使用数字0-9和字母A-F来表示数值。
三、图像编码图像编码是指将图像数据转换为二进制或其他进制表示的过程。
常见的图像编码方式包括JPEG、PNG、BMP等。
JPEG是一种有损压缩的图像编码格式,广泛应用于网络和多媒体应用中。
PNG是一种无损压缩的图像编码格式,支持透明度和渐变效果。
BMP是一种简单的图像编码格式,它是未经压缩的位图格式。
四、音频编码音频编码是指将音频数据转换为二进制或其他进制表示的过程。
常见的音频编码方式包括MP3、AAC、WAV等。
MP3是一种有损压缩的音频编码格式,广泛应用于音乐和语音的存储和传输中。
AAC是一种高级音频编码格式,支持更高的音质和更高效的压缩。
WAV是一种无损压缩的音频编码格式,支持多种音频采样率和位深度。
五、视频编码视频编码是指将视频数据转换为二进制或其他进制表示的过程。
常见的视频编码方式包括MPEG、AVI、MOV等。
MPEG是一种有损压缩的视频编码格式,广泛应用于视频存储和传输中。
AVI是一种无损压缩的视频编码格式,支持多种视频分辨率和帧率。
计算机常用的编码
计算机常用的编码一、字符编码字符编码是用于将字符集(如英文字母、数字、标点符号等)转换为计算机可以理解的二进制数的一种方式。
以下是几种常见的字符编码:1.ASCII码:ASCII码是用于将字符集转换为二进制数的标准编码方式。
它包含了128个不同的字符,每个字符由7位二进制数表示。
2.Unicode:Unicode是一种国际化的字符编码标准,它包含了世界上几乎所有语言的字符。
每个Unicode字符由16位二进制数表示。
3.GB2312和GBK:GB2312是中国国家强制标准,包含了6000多个常用汉字和英文符号。
GBK是在GB2312基础上扩展的,包含了更多的汉字和符号。
4.UTF-8:UTF-8是一种可变长度的字符编码,它能够表示任何Unicode字符。
UTF-8编码的每个字符由1到4个字节表示,对于英文字母和数字,UTF-8编码与ASCII码相同。
二、数值编码数值编码是用于将数值转换为二进制数的一种方式。
以下是几种常见的数值编码:1.二进制:二进制是最简单的数值编码方式,只有0和1两种状态。
2.十进制:十进制是我们日常使用的数值编码方式,它有0到9共10个数字。
3.十六进制:十六进制是一种简化的数值编码方式,它有0到9和A到F共16个数字。
在计算机科学中,十六进制常用于表示二进制数的简写方式。
三、图像编码图像编码是将图像数据转换为二进制数的一种方式。
以下是几种常见的图像编码:1.JPEG:JPEG是一种常用的图像压缩标准,它采用有损压缩算法,能够在保证图像质量的前提下,大大减少图像数据的存储空间。
2.PNG:PNG是一种无损压缩的图像格式,它能够保留原始图像的所有信息,并且在压缩后不失真。
PNG广泛应用于网页设计、软件界面设计等领域。
3.GIF:GIF是一种基于LZW算法的压缩图像格式,它可以支持动态图像和透明背景。
GIF广泛应用于网页中的动画、图标等设计。
四、音频编码音频编码是将音频数据转换为二进制数的一种方式。
字符编码简介:ASCII,Unicode,UTF-8,GB2312
字符编码简介: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种符号,肯定是不够的,就必须使用多个字节表达一个符号。
计算机基础知识什么是字符编码
计算机基础知识什么是字符编码计算机基础知识:什么是字符编码计算机基础知识涉及到各种术语和概念,而字符编码是其中一个非常重要的概念。
在计算机科学中,字符编码是用来表示字符的标准规范,它将字符映射为二进制数字,以便计算机能够识别和处理。
本文将介绍字符编码的基本原理和常见的字符编码方式。
一、字符编码的基本原理字符编码的基本原理是将字符与二进制数字建立对应关系。
由于计算机只能处理数字,而不能直接处理字符,所以需要将字符转换为计算机可识别的数字表示。
这种转换过程就是字符编码。
字符编码的基本思想是为每个字符分配一个唯一的编码。
不同的字符编码方案使用不同长度的二进制数字来表示字符。
最常见的字符编码方案是ASCII码。
二、ASCII码ASCII码(American Standard Code for Information Interchange)是最早的字符编码标准之一,它使用7位二进制表示128个字符,包括英文字母、数字和一些特殊字符。
ASCII码是最基本的字符编码方式,但由于只能表示128个字符,无法满足其他语言的需求。
三、Unicode编码Unicode是目前最常用的字符编码标准,它涵盖了全球几乎所有的字符。
Unicode使用不同长度的二进制数字来表示字符,最常见的是UTF-8编码和UTF-16编码。
1. UTF-8编码UTF-8(UCS Transformation Format 8-bit)是一种变长编码方式,使用1到4个字节表示字符。
UTF-8编码兼容ASCII码,对于英文字母和符号,使用1个字节表示。
对于汉字等非ASCII字符,使用多个字节表示。
UTF-8编码具有很好的兼容性和节省存储空间的特点,是互联网上最常用的字符编码方式。
2. UTF-16编码UTF-16(UCS Transformation Format 16-bit)是一种定长编码方式,使用2个字节表示大部分字符,对于辅助平面字符使用4个字节表示。
汉字字符集编码
汉字字符集编码
汉字字符集编码是指将汉字转换为计算机可以使用的编码方案,常用的汉字字符集编码方案有GBK、GB2312、UTF-8等。
以下是一些常见的汉字字符集编码及其用途:
1. GBK:GBK编码是将GB2312字符集扩展到5位,用于存储大部分中文汉字。
GBK编码在Windows和MacOS操作系统中广泛使用,也被许多中文应用(如网页、电子书等)所支持。
2. GB2312:GB2312编码是一种基于UTF-8的字符集编码方案,用于存储中文字符。
与UTF-8相比,GB2312在某些情况下可能会出现编码错误,但比UTF-8更稳定。
3. UTF-8:UTF-8是一种无符号多字节编码方案,可以表示任意汉字。
UTF-8编码在中文字符的存储和传输方面都是最好的选择,但在一些情况下可能会出现编码错误。
4. ASCII: ASCII编码是一种单字节编码方案,用于存储只有字符和符号。
虽然ASCII编码可以表示所有的中文字符,但在传输和存储时可能会出现编码错误。
在实际应用中,选择合适的汉字字符集编码方案取决于具体需求和设备。
字符编码 汉字编码规则
字符编码汉字编码规则一、引言字符编码是计算机处理文本信息的基础,它定义了字符在计算机内部如何表示。
汉字编码则是针对汉字的特殊字符编码,它解决了汉字在计算机内部表示的问题,使得我们能更方便地进行汉字的处理、存储和传输。
本文将详细介绍字符编码和汉字编码规则。
二、字符编码字符编码的基本原理是将字符映射为数字或符号,以二进制的形式存储和传输。
这种编码方式能够使不同的字符在计算机内部以同样的方式表示,方便计算机进行数据处理。
常见的字符编码格式有ASCII、UTF-8、UTF-16等。
1.ASCII:即美国标准信息交换码,是一种基于7位二进制数的编码格式,能够表示128个不同的字符,其中包括英文字母、数字、标点符号等。
2.UTF-8:即UnicodeTransformationFormat-8,是一种变长字节编码,能够表示几乎所有语言的字符。
UTF-8使用1-4个字节来表示一个字符,可以表示大部分的英文字符、一些特殊符号,以及大部分的汉字。
3.UTF-16:即UnicodeTransformationFormat-16,也是一种变长字节编码,使用2个字节表示一个字符。
UTF-16常用于需要处理复杂字符集的场合,如中文、日文、韩文等。
三、汉字编码规则汉字编码规则是指如何将汉字转换为计算机可以处理的数字或符号形式。
常见的汉字编码格式有GB2312、GBK、GB18030等。
1.GB2312:即《信息交换用汉字编码字符集-基本集》,是一种常用的简体中文字符集,共收录了6763个简体汉字。
GB2312使用2个字节来表示一个汉字,具有良好的国际化和标准化。
2.GBK:即《汉字内码扩展规范》,是对GB2312的扩展,增加了部分生僻字和汉字的拼音标识,同时对一些字形进行了调整。
GBK使用多字节编码,能够表示更多的汉字,但同时也增加了编码的复杂性。
3.GB18030:是新的汉字内码规范,它是对GBK和UTF-8的兼容扩展,采用了与UTF-8兼容的编码方式,使用多字节编码,能够表示更多的汉字和Unicode中的部分字符。
编码详解
2.iso8859-1
属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母'a'的编码为0x61=97。
很明显,iso8859-1编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用iso8859-1编码来表示。而且在很多协议上,默认使用该编码。比如,虽然"中文"两个字不存在iso8859-1编码,以gb2312编码为例,应该是"d6d0 cec4"两个字符,使用iso8859-1编码的时候则将它拆开为4个字节来表示:"d6 d0 ce c4"(事实上,在进行存储的时候,也是以字节为单位处理的)。而如果是UTF编码,则是6个字节"e4 b8 ad e6 96 87"。很明显,这种表示方法还需要以另一种编码为基础。
UTF8编码后的大小是不一定,例如一个英文字母"a" 和 一个汉字 "好",编码后占用的空间大小就不样了,前者是一个字节,后者是三个字节!编码的方法是从低位到高位。黄色为标志位其它着色为了显示其,编码后的位置。
9.Unicode
Unicode字符集(简称为UCS),国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国文字、符号进行统一性编码。1991年美国跨国公司成立Unicode Consortium,并于1991年10月与WG2达成协议,采用同一编码字集。目前Unicode是采用16位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)相同。Unicode于1992年6月通过DIS(Draf International Standard),目前版本V2.0于1996公布,内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留20249个,共计65534个。Unicode编码后的大小是一样的.例如一个英文字母 "a" 和 一个汉字 "好",编码后都是占用的空间大小是一样的,都是两个字节!
字符编码
GB2312
GB2312也是ANSI编码里的一种,对ANSI编码最初始的ASCII编码进行扩充,为了满足国内在计算机中使用汉 字的需要,中国国家标准总局发布了一系列的汉字字符集国家标准编码,统称为GB码,或国标码。其中最有影响 的是于1980年发布的《信息交换用汉字编码字符集基本集》,标准号为GB 2312-1980,因其使用非常普遍,也常 被通称为国标码。GB2312编码通行于我国内地;新加坡等地也采用此编码。几乎所有的中文系统和国际化的软件 都支持GB 2312。
UTF-8的编码是这样得出来的,以”汉”这个字为例:
“汉”字的Unicode编码是U+00006C49,然后把U+00006C49通过UTF-8编码器进行编码,最后输出的UTF-8 编码是E6B189。
Base64
Base64编码有的电子邮件系统(比如国外信箱)不支持非英文字母(比如汉字)传输,这是历史原因造成的(认 为只有美国会使用电子邮件?)。因为一个英文字母使用ASCII编码来存储,占存储器的1个字节(8位),实际上只 用了7位2进制来存储,第一位并没有使用,设置为0,所以,这样的系统认为凡是第一位是1的字节都是错误的。 而有的编码方案(比如GB2312)不但使用多个字节编码一个字符,并且第一位经常是1,于是邮件系统就把1换成0, 这样收到邮件的人就会发现邮件乱码。
ASCII码使用7位2进制数表示一个字符,7位2进制数可以表示出2的7次方个字符,共128个字符。EBCDIC码 使用8位,可以表示出2的8次方个字符,256个字符。
字符集编码详解
字符集编码详解字符集编码是计算机科学中的一个重要概念,主要用于将字符集中的字符转换为计算机可以理解和处理的数字形式。
以下是一些常见的字符集编码及其详解:ASCII码:ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是最基础的字符集编码,它使用7位或8位二进制数来表示字符。
ASCII码包括了128个或256个字符,包括英文字母、数字、标点符号等。
其中,0x00-0x20和0x7F是控制字符,如换行、回车等。
GB2312:GB2312是中国国家标准的简体中文字符集编码,收录了简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。
在GB2312编码中,一个汉字通常由两个字节表示,每个字节均采用七位编码表示。
这种表示方式也称为区位码,其中前字节表示区号,后字节表示位号。
UTF-8:UTF-8是一种针对Unicode的可变长度字符编码,也是一种广泛使用的编码方式。
在UTF-8编码中,一个字符可以占用1到4个字节,其中英文字符通常占用1个字节,而中文字符则占用3个字节。
UTF-8编码具有良好的兼容性和扩展性,可以表示全世界绝大多数语言的字符。
UTF-7:UTF-7是一种使用7位ASCII码对Unicode码进行转换的编码方式。
它的设计目的是为了在只能传递7位编码的邮件网关中传递信息。
UTF-7对英语字母、数字和常见符号直接显示,而对其他符号用修正的Base64编码。
UTF-7编码通常用于电子邮件等需要传输多种语言字符的场景。
除了以上几种常见的字符集编码外,还有许多其他的编码方式,如UTF-16、UTF-32、ISO-8859-1等。
不同的编码方式具有不同的特点和适用范围,需要根据具体的应用场景选择合适的编码方式。
需要注意的是,不同的字符集编码之间可能存在不兼容的情况,因此在进行字符编码转换时需要谨慎处理,以避免出现乱码等问题。
中文的字符编码
中文的字符编码中文字符编码是用来对中文文字进行数字化表示的一种编码方式。
常见的中文字符编码有GB2312、GBK、GB18030、Unicode和UTF-8等。
GB2312是最早的中文字符编码标准,它规定了7436个常用汉字和682个其他符号的位置。
由于GB2312只包含了简体中文字符,所以无法表示繁体中文字符。
GBK是GB2312的拓展,新增了包括繁体中文字符在内的21886个字符。
GBK编码系统兼容GB2312编码,既可以处理简体中文,也可以处理繁体中文。
GB18030是最新的中文字符编码标准,它完全兼容GB2312和GBK编码,同时可以表示20902个汉字和图形字符。
GB18030是一个多字节的编码系统,对于不同的字符,可以使用1个、2个或4个字节进行编码。
Unicode是一种字符集,它包含了世界上几乎所有的字符,无论是哪个国家的文字、符号或表情。
Unicode使用16位的编码空间来表示所有字符,共计65536个码位。
然而,因为Unicode字符太多,所以存储和传输起来会比较占用空间和时间。
UTF-8是一种更加高效的Unicode字符编码方案,它采用变长的编码方式,可以根据字符的不同而使用1个、2个、3个或4个字节来进行编码。
UTF-8编码可以兼容ASCII编码,因此在处理纯英文文本时不会占用额外的空间。
而且,UTF-8编码还可以进行自我同步,这意味着不管传输过程中是否出现错误,都能够保持后续字符的正常解码。
除了上述常用的中文字符编码,还有一些其他编码方式,如Big5、ISO-2022-CN等,它们主要用于繁体中文的编码和传输。
在使用中文字符编码时,需要注意编码的选择和转换方式。
尽量选择更加通用和兼容的编码方式,避免出现乱码或不兼容的问题。
在进行编码转换时,可以使用专门的编码转换工具或编程语言的相关函数来实现。
总之,中文字符编码是对中文文字进行数字化表示的一种方式,不同的编码标准具有不同的特点和适用范围。
字符编码的方式
字符编码的方式字符编码是将字符(如字母、数字、符号和汉字等)转换为计算机可以识别的二进制数字序列的过程。
以下是一些常见的字符编码方式:1. ASCII(American Standard Code for Information Interchange)编码:用于表示英文和其他西文字符。
使用一个字节(8位)进行编码,共有128个不同的字符(0-127),其中前32个字符通常用于控制用途(如换行、制表等)。
每个字符的最高位固定为0。
2. 扩展ASCII(Extended ASCII)编码:为了表示更多的欧洲文字和特殊符号,扩展了ASCII编码。
也使用一个字节进行编码,但编码范围扩展到128-255。
3. ISO-8859系列编码:这是一组不同的字符集编码,每个版本对应一种或多种欧洲语言的字符集。
通常也使用一个字节进行编码,但具体能表示的字符集因版本不同而不同。
4. Unicode(Universal Character Set, UCS)编码:设计用来统一表示世界上几乎所有字符和符号的编码系统。
最常用的Unicode实现是UTF-16,它使用两个字节(16位)来表示基本多文种平面(BMP)中的字符,对于超出BMP的字符,需要使用四个字节(surrogate pairs)。
Unicode还包括UTF-32编码,它始终使用四个字节来表示每个字符。
5. UTF-8(Unicode Transformation Format - 8 bits)编码:是Unicode的一种变长字节编码方式,非常流行且广泛使用。
英文字符通常用一个字节编码(与ASCII兼容),欧洲字符通常用两个字节,而大多数CJK(中文、日文、韩文)字符用三个字节,极少数字符用四个字节。
UTF-8的最大优点是向前兼容ASCII,并且在文本中包含大量英文字符时可以节省存储空间。
有关字符编码的知识
有关字符编码的知识一、什么是字符编码呢?嗨,小伙伴们!字符编码就像是一种神秘的密码,它能让计算机读懂我们人类使用的字符,像字母啊、数字啊、符号啥的。
想象一下,计算机就像一个超级聪明但只懂自己语言的小怪物,字符编码就是我们和这个小怪物交流的桥梁。
比如说,我们在电脑上打一个“你”字,计算机可不知道这是啥意思,但是通过字符编码,它就能知道对应的数字或者代码,然后就能正确显示这个字啦。
简单来说,字符编码就是把我们能看懂的字符转化成计算机能理解的代码的规则。
二、常见的字符编码类型1. ASCII码这可是字符编码里的老大哥啦。
ASCII码主要是针对英文字母、数字和一些常见符号的编码。
它用7位二进制数来表示一个字符,总共可以表示128个不同的字符。
像大写字母A对应的ASCII码就是65,小写字母a就是97。
这就很神奇,只要计算机看到65,就知道要显示大写A啦。
不过呢,ASCII码有个小缺点,就是它只能表示英文字符那些,对于其他语言的字符就有点力不从心了。
2. UnicodeUnicode就像是字符编码里的超级大联盟。
它的目标是把全世界所有的字符都包括进来,不管是中文、日文、韩文,还是那些稀奇古怪的少数民族文字。
Unicode为每个字符都分配了一个唯一的代码点。
比如说,汉字“好”在Unicode里就有自己对应的代码。
这样的好处就是,不管在哪个国家、哪个系统下,只要支持Unicode,就能正确显示各种字符。
不过呢,Unicode也有个小问题,就是它有时候会比较占空间,因为它的编码范围很广嘛。
3. UTF - 8UTF - 8是Unicode的一种实现方式。
它很聪明,采用了可变长度的编码方式。
对于英文字符,UTF - 8就用1个字节来表示,和ASCII码差不多,这样就节省了空间。
对于其他字符,比如中文,就会用2个或者3个字节来表示。
这样就兼顾了对不同字符的支持和空间的节省。
现在我们在互联网上看到的很多网页、文档啥的,大多都是用UTF - 8编码的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符编码详解每一个程序员都不可避免的遇到字符编码的问题,特别是做Web开发的程序员,“乱码问题”一直是让人头疼的问题,也许您已经很少遇到“乱码”问题,然而,对解决乱码的方法的内在原理,您是否明白?本人作为一个程序员,在字符编码方面同样遇到不少问题,而且一直对各种编码懵懵懂懂、不清不楚;在工作中也曾经遇到一个很烦人的编码问题。
这两天在网上收集了大量编码方面的资料,对字符编码算是理解的比较清楚了。
下面把我认为比较重要的知识点记录下来,一方面方便以后复习;另一方面也希望给跟我一样懵懵懂懂的人一个参考。
不对或不妥之处,请批评指正。
在此之前,先了解一些有用概念:“字符集”、“字符编码”和“内码”。
1、字符集与字符编码字符是各种文字和符号的总称,包括各个国家文字、标点符号、图形符号、数字等。
字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集有:ASCII字符集、ISO 8859字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。
计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
编码(encoding)和字符集不同。
字符集只是字符的集合,不一定适合作网络传送、处理,有时须经编码(encode)后才能应用。
如Unicode可依不同需要以UTF-8、UTF-16、UTF-32等方式编码。
字符编码就是以二进制的数字来对应字符集的字符。
因此,对字符进行编码,是信息交流的技术基础。
使用哪些字符。
也就是说哪些汉字,字母和符号会被收入标准中。
所包含“字符”的集合就叫做“字符集”。
规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码”。
各个国家和地区在制定编码标准的时候,“字符的集合”和“编码”一般都是同时制定的。
因此,平常我们所说的“字符集”,比如:GB2312, GBK, JIS 等,除了有“字符的集合”这层含义外,同时也包含了“编码”的含义。
注意:Unicode字符集有多种编码方式,如UTF-8、UTF-16等;ASCII只有一种;大多数MBCS(包括GB2312)也只有一种。
2、什么是内码?2.1 维基百科的解释在计算机科学及相关领域当中,内码指的是“将资讯编码后,透过某种方式储存在特定记忆装置时,装置内部的编码形式”。
在不同的系统中,会有不同的内码。
在以往的英文系统中,内码为ASCII。
在繁体中文系统中,目前常用的内码为大五码(Big5)。
在简体中文系统中,内码则为国标码(国家标准代码:现在强制要求使用GB18030标准;较旧计算机仍然使用GB2312)。
而统一码(Unicode)则为另一常见内码。
2.2 百度百科的解释内码是指整机系统中使用的二进制字符编码,是沟通输入、输出与系统平台之间的交换码,通过内码可以达到通用和高效率传输文本的目的。
比如MS Word中所存储和调用的就是内码而非图形文字。
英文ASCII字符采用一个字节的内码表示,中文字符如国标字符集中,GB2312、GB12345、GB13000皆用双字节内码,GB18030(27,533汉字)双字节内码汉字为20,902个,其余6,631个汉字用四字节内码。
3、字符编码分类总结下面从计算机对多国语言支持的角度来总结字符编码。
3.1 ASCII编码以下来自“维基百科”:ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统。
它主要用于显示现代英语,而其扩展版本EASCII则可以勉强显示其他西欧语言。
它是现今最通用的单字节编码系统(但是有被UniCode追上的迹象),并等同于国际标准ISO/IEC 646。
ASCII第一次以规范标准的型态发表是在1967年,最后一次更新则是在1986年,至今为止共定义了128个字符;其中33个字符无法显示(这是以现今操作系统为依归,但在DOS 模式下可显示出一些诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符。
控制字符的用途主要是用来操控已经处理过的文字。
在33个字符之外的是95个可显示的字符,包含用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。
ASCII表:见/zh-cn/ASCIIASCII缺点:ASCII的最大缺点是只能显示26个基本拉丁字母、阿拉伯数目字和英式标点符号,因此只能用于显示现代美国英语(而且在处理英语当中的外来词如na?ve、café、élite等等时,所有重音符号都不得不去掉,即使这样做会违反拼写规则)。
而EASCII虽然解决了部份西欧语言的显示问题,但对更多其他语言依然无能为力。
因此现在的苹果电脑已经抛弃ASCII而转用Unicode。
最早的英文DOS操作系统的系统内码是:ASCII。
计算机这时候只支持英语,其他语言不能够在计算机存储和显示。
在该阶段,单字节字符串使用一个字节存放一个字符(SBCS,Single Byte Character System)。
如:"Bob123"占6个字节。
3.2 ANSI编码为使计算机支持更多语言,通常使用0x800~xFF范围的2个字节来表示1个字符。
比如:汉字'中' 在中文操作系统中,使用[0xD6,0xD0]这两个字节存储。
不同的国家和地区制定了不同的标准,由此产生了GB2312,BIG5,JIS等各自的编码标准。
这些使用2个字节来代表一个字符的各种汉字延伸编码方式,称为ANSI 编码。
在简体中文系统下,ANSI 编码代表GB2312 编码,在日文操作系统下,ANSI 编码代表JIS 编码。
不同ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段ANSI 编码的文本中。
中文DOS、中文/日文Windows 95/98时代系统内码使用的是ANSI编码(本地化)在使用ANSI编码支持多语言阶段,每个字符使用一个字节或多个字节来表示(MBCS,Multi-Byte Character System),因此,这种方式存放的字符也被称作多字节字符。
比如,"中文123" 在中文Windows 95 内存中为7个字节,每个汉字占2个字节,每个英文和数字字符占1个字节。
在非Unicode 环境下,由于不同国家和地区采用的字符集不一致,很可能出现无法正常显示所有字符的情况。
微软公司使用了代码页(Codepage)转换表的技术来过渡性的部分解决这一问题,即通过指定的转换表将非Unicode 的字符编码转换为同一字符对应的系统内部使用的Unicode 编码。
可以在“语言与区域设置”中选择一个代码页作为非Unicode 编码所采用的默认编码方式,如936为简体中文GBK,950为正体中文Big5(皆指PC上使用的)。
在这种情况下,一些非英语的欧洲语言编写的软件和文档很可能出现乱码。
而将代码页设置为相应语言中文处理又会出现问题,这一情况无法避免。
从根本上说,完全采用统一编码才是解决之道,但目前尚无法做到这一点。
代码页技术现在广泛为各种平台所采用。
UTF-7 的代码页是65000,UTF-8 的代码页是65001。
3.3 Unicode编码为了使国际间信息交流更加方便,国际组织制定了UNICODE 字符集,为各种语言中的每一个字符设定了统一并且唯一的数字编号,以满足跨语言、跨平台进行文本转换、处理的要求。
Unicode字符集可以简写为UCS(Unicode Character Set)。
早期的unicodeUnicode标准有UCS-2、UCS-4的说法。
UCS-2用两个字节编码,UCS-4用4个字节编码。
在UNICODE 被采用之后,计算机存放字符串时,改为存放每个字符在UNICODE 字符集中的序号。
目前计算机一般使用 2 个字节(16 位)来存放一个序号(DBCS,Double Byte Character System),因此,这种方式存放的字符也被称作宽字节字符。
比如,字符串"中文123" 在Windows 2000 下,内存中实际存放的是 5 个序号,一共10个字节。
Unicode字符集包含了各种语言中使用到的所有“字符”。
用来给UNICODE 字符集编码的标准有很多种,比如:UTF-8, UTF-7, UTF-16, UnicodeLittle, UnicodeBig 等。
4、常用编码规则4.1 单字节字符编码(1)编码标准:ISO-8859-1。
(2)说明:最简单的编码规则,每一个字节直接作为一个UNICODE 字符。
比如,[0xD6, 0xD0] 这两个字节,通过iso-8859-1 转化为字符串时,将直接得到[0x00D6, 0x00D0] 两个UNICODE 字符,即"?D"。
反之,将UNICODE 字符串通过iso-8859-1 转化为字节串时,只能正常转化0~255 范围的字符。
4.2 ANSI编码(1)GB2312, BIG5, Shift_JIS, ISO-8859-2。
(2)把UNICODE 字符串通过ANSI 编码转化为“字节串”时,根据各自编码的规定,一个UNICODE 字符可能转化成一个字节或多个字节。
反之,将字节串转化成字符串时,也可能多个字节转化成一个字符。
比如,[0xD6, 0xD0] 这两个字节,通过GB2312 转化为字符串时,将得到[0x4E2D] 一个字符,即'中' 字。
“ANSI 编码”的特点:(1)这些“ANSI 编码标准”都只能处理各自语言范围之内的UNICODE 字符。
(2)“UNICODE 字符”与“转换出来的字节”之间的关系是人为规定的。
4.3 UNICODE编码(1)编码标准:UTF-8, UTF-16, UnicodeBig。
(2)与“ANSI 编码”类似的,把字符串通过UNICODE 编码转化成“字节串”时,一个UNICODE 字符可能转化成一个字节或多个字节。
与“ANSI 编码”不同的是:(1)这些“UNICODE 编码”能够处理所有的UNICODE 字符。
(2)“UNICODE 字符”与“转换出来的字节”之间是可以通过计算得到的。
我们实际上没有必要去深究每一种编码具体把某一个字符编码成了哪几个字节,我们只需要知道“编码”的概念就是把“字符”转化成“字节”就可以了。
对于“UNICODE 编码”,由于它们是可以通过计算得到的,因此,在特殊的场合,我们可以去了解某一种“UNICODE 编码”是怎样的规则。