最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Unicode UTF GBK 单字节 多字节

来源:动视网 责编:小OO 时间:2025-10-02 00:52:47
文档

Unicode UTF GBK 单字节 多字节

话说字符集李貌--Fiberhome摘要:本文简要陈述Unicode、USC、UTF、GBK、单字节、多字节的基本概念,并说明它们之间的联系与区别。关于USC的编码对应关系、UTF的格式定义等细节,不在本文讨论范围内。1.概念Unicode:是一种在计算机上使用的字符编码。其中文称呼为统一码、万国码或单一码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。说明:这是概念,是抽象的东西;其通过USC与UTF的细化,真正实现跨语言、跨平台的特性
推荐度:
导读话说字符集李貌--Fiberhome摘要:本文简要陈述Unicode、USC、UTF、GBK、单字节、多字节的基本概念,并说明它们之间的联系与区别。关于USC的编码对应关系、UTF的格式定义等细节,不在本文讨论范围内。1.概念Unicode:是一种在计算机上使用的字符编码。其中文称呼为统一码、万国码或单一码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。说明:这是概念,是抽象的东西;其通过USC与UTF的细化,真正实现跨语言、跨平台的特性
话说字符集

李貌 -- Fiberhome

摘要:

本文简要陈述Unicode、USC、UTF、GBK、单字节、多字节的基本概念,并说明它们之间的联系与区别。关于USC的编码对应关系、UTF的格式定义等细节,不在本文讨论范围内。

1.概念

Unicode:是一种在计算机上使用的字符编码。其中文称呼为统一码、万国码或单一码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。说明:这是概念,是抽象的东西;其通过USC与UTF的细化,真正实现跨语言、跨平台的特性。

USC:通用字符集,是Universal Character Set的缩写,是Unicode的编码标准。说白了,就是字符与编码(数字)的对应关系的标准。USC分为USC-2和USC-4。简单的说,UCS-2用两个字节编码,UCS-4用4个字节编码。显而易见,由于两字节编码只能存储2^16(65536)个字符,无法存储全球字符(即全球各国的字符总和大于2^16个),故产生UCS-4标准。通常我们不区分Unicode与USC,即说UNICODE时也就是说UCS。

UTF:字符集转换(或者传输)格式,是UCS Transformation Format的缩写。它定义了Unicode的编码(数字)转换成程序数据。它是网络上不同国家不同操作系统进行字符串传输、交换的重要依据。UTF 分为UTF-8、UTF-16、UTF-32。UTF-8、UTF-16、UTF-32分别以BYTE、WORD、DWORD作为编码单位(传输过程中的最小单元)。

GBK:(汉语)国标字符集。与USC一样,只是GBK是中国人自己为汉字进行编码而定义的统一字符集。GBK是规范中文编码过程中的重要成果,是一项国家标准。中文编码标准主要存在GB2312、GBK、GB18030三个版本。GBK是windows中文操作系统缺省使用的字符集。

BIG-5:繁体中文码,是通行于、地区的一个繁体字编码方案,俗称“大五码”。

单字节SBCS:single-byte character set,用一个Byte来编码字符。如:ASCII。

多字节MBCS:multi-byte character set,用多个Byte来编码字符。如Unicode,GBK。

双字节DBCS:double-byte character set,多字节的特例。由于大多数字符编码的存储,仅需要用双字节就够了。即用两个字节能表示的字符,占总字符量的绝大部分,三个或三个以上字节表示的字符,通常我们是不会用到的。

宽字节wchar:wide character,两字节表示的UNICODE编码(至少windows是这样的),即UCS-2标准定义的UNICODE。

2.区别与联系

2.1.字符集

1.Unicode的编码规范是UCS,Unicode编码的传输规范是UTF。UCS是字符与编码的对应关系的标准,UTF是该编码在计算机中存储、传输、交换的规范。

2.UCS-2( PK )UCS-4。UCS-2用两个字节编码,UCS-4用4个字节编码。UCS-4兼容UCS-2,USC-2字符通过加宽为4字节,就是其在UCS-4中的编码。

3.UTF是传输规范。如“汉”字符对应的编码(数字)是0x6c49,而编码在传输过程中对应UTF-8编码数据是: BYTE data_utf8[] = {0xE6, 0xB1, 0x}(关于如何转换,不在本文讨论范围)。

4.UTF-8( PK )UTF-16( PK )UTF32。UTF-8、UTF-16、UTF-32分别以BYTE、WORD、DWORD作为编码单位。(关于其区别,我想只有你了解了它们的编码转换步骤,才能有一个深刻的体会)

5.GBK( PK )UCS。理想总是好的,现实总是残酷的。UCS定义了一套很好的国际化字符集标准,但是并不是所有国家或语种都买账。GBK就是国人为了能够很好的在计算机中表示汉语字符而确定的编码标准。(当然也有历史原因,GB字符集产生要比UCS早)

6.UTF-16与UTF-32中的字符序问题,即Big-endian与Little-endian。Big-endian与Little-endian是计算机系统存储16位数据特有的问题。Big-endian是指高8位字节在低位字节的前面(符合人的认知习惯),Little-endian则相反。值得一提的是,目前流行的INTEL-x86-CPU所采用的是Little-endian(强烈鄙视、无语)。

2.2.编码方式与字符集

1.单字节( PK )多字节( PK )双字节。不多说,看概念就知道。

2.多字节( PK )宽字节。一般的,就是指本地化(区域)字符转UNICODE字符。(其实UNICODE编码也是多字节的,但一般都不把它归为多字节字符集,除非你自称火星人)。

3.宽字节( PK )UNICODE。个人认为,就是UCS-2编码标准对应的计算机数据存储类型。

4.代码页在多字节转宽字节过程中起到编码对应表的作用。如代码页“.936”,存储了GBK到UNICODE编码(数字)的对应关系。

3.字符集转换

本节仅列举windows下的字符集转换函数。

1.mbstowbs。多字节转宽字节字符串。注意:调用前,需要配置地域化信息。地域化设置函数setlocale。

2.wbstombs。

3.MultiByteToWideChar。

4.WideCharToMultiByte。

5.LCMapString。简体与繁体汉字的互转。

文档

Unicode UTF GBK 单字节 多字节

话说字符集李貌--Fiberhome摘要:本文简要陈述Unicode、USC、UTF、GBK、单字节、多字节的基本概念,并说明它们之间的联系与区别。关于USC的编码对应关系、UTF的格式定义等细节,不在本文讨论范围内。1.概念Unicode:是一种在计算机上使用的字符编码。其中文称呼为统一码、万国码或单一码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。说明:这是概念,是抽象的东西;其通过USC与UTF的细化,真正实现跨语言、跨平台的特性
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top