各种文字编码简介+常见的编码都有介绍

合集下载

汉字最基本的编码

汉字最基本的编码

汉字最基本的编码汉字最基本的编码是指汉字的字符编码方式,它是将汉字字符映射到计算机内部存储单元的一种方式。

汉字编码是计算机处理汉字信息的基础,它使计算机能够正确地显示、输入和处理汉字。

下面将介绍几种常见的汉字编码方式。

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。

GB2312、GB 13000、GBK、GB18030 介绍和说明文档

GB2312、GB 13000、GBK、GB18030 介绍和说明文档

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种编码

简述汉字的4种编码

简述汉字的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编码,在国际化和跨平台应用中被广泛使用。

字符编码

字符编码

23
GB码区位示例
01区
78位
24
GB码区位示例(续)
16 区 1 2 3 4 5 6 7 8 9 0 啊 阿 埃 挨 哎 唉 哀 皑 癌 1 蔼 矮 艾 碍 爱 隘 鞍 氨 安 俺 2 按 暗 岸 胺 案 肮 昂 盎 凹 敖 3 熬 翱 袄 傲 奥 懊 澳 芭 捌 扒 4 叭 吧 笆 八 疤 巴 拔 跋 靶 把 5 耙 坝 霸 罢 爸 白 柏 百 摆 佰 6 败 拜 稗 斑 班 搬 扳 般 颁 板 7 版 扮 拌 伴 瓣 半 办 绊 邦 帮 8 梆 榜 膀 绑 棒 磅 蚌 镑 傍 谤 9 苞 胞 包 褒 剥 17 区 1 2 3 4 5 6 7 8 9 0 薄 雹 保 堡 饱 宝 抱 报 暴 1 豹 鲍 爆 杯 碑 悲 卑 北 辈 背 2 贝 钡 倍 狈 备 惫 焙 被 奔 苯 3 本 笨 崩 绷 甭 泵 蹦 迸 逼 鼻 4 比 鄙 笔 彼 碧 蓖 蔽 毕 毙 毖 5 币 庇 痹 闭 敝 弊 必 辟 壁 臂 6 避 陛 鞭 边 编 贬 扁 便 变 卞 7 辨 辩 辫 遍 标 彪 膘 表 鳖 憋 8 别 瘪 彬 斌 濒 滨 宾 摈 兵 冰 9 柄 丙 秉 饼 炳
19
二、计算机中中文字符的表示 汉字交换码
国家标准将每个汉字和图形符号的两个字节分 别用两位的十进制编码(不足补0),前字节的编 码称为区码,后字节的编码称为位码,排列在一个 94行94列的二维代码表中,形成区位码表。 如“保”字在二维代码表中处于17区第03位 ,区位码即为1703D 。 把区位码按一定的规则转换成的二进制代码叫 做信息交换码(简称国标码)。
字 符 编 码
1


一 计算机中字符的表示(ASCII码) 二 计算机中中文字符的表示
2
概 述

举例说明生活中的编码及其编码规则

举例说明生活中的编码及其编码规则

举例说明生活中的编码及其编码规则编码在我们日常生活中扮演着重要的角色,它是将信息转化为特定的符号或数字的过程。

无论是文字、图像、音频还是视频,都需要通过编码来表达和传递。

在本文中,我将以中括号为主题,详细介绍生活中的编码及其编码规则。

一、什么是编码?编码是一种将信息转换为特定符号或数字的过程。

通过编码,我们可以将各种形式的信息,如文字、图像、音频和视频,转换成计算机可以识别和处理的形式。

编码使得信息能够被传输和存储,以及在需要的时候进行解码还原出原始的信息。

二、生活中的编码示例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可以表示更多的字符,并且具有兼容性和国际性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

各种文字编码简介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。

相关文档
最新文档