字符编码——ISO-8859-1、UTF-8、UNICODE、UTF-16、UTF-32

ASCII:单字节编码、取值范围0X00-0X7F,表示控制字符及数字字符'0'-'9'、'a'-'z'、'A'-'Z'。

ISO-8859-1:单字节编码、向下兼容ASCII,范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号,包括大多数西方语言字符。

UNICODE:统一码、万国码、单一码,涵盖基本上所有的语言字符,满足跨语言、跨平台的文本转换、处理的要求。

    UNICODE码使用和ISO 10646-1相同的字库和字码,UCS-4由四部分组成——Group、平面、行、码位,现今基本上只用到了平面、行、码位即可表示Unicode码,group 0的平面0被称BMP(Basic Multilingual Plane)。如果UCS-4的前两个字节全为0,则将UCS-4的BMP去掉前面的两个0字节就得到UCS-2。在Unicode 5.0.0版本中,只用到了平面0、平面1、平面2、平面14、平面15、平面16,其中平面15、平面16保留给用户放自定义字符。平面0上定义27973个汉字、平面2上定义43253个汉字。


UTF-8:以字节为单位对Unicode进行编码。从Unicode到UTF-8的编码方式如下:


对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同。否则,UTF-8编码的最高字节的连续的1的个数表示该编码该字符的字节数,连续的1之后紧跟1个0,非最高的字节的前两位始终为10,然后将Unicode编码按6比特为单位进行截取,依次从低到高放入字节流中。UTF-8编码的最大长度是6个字节。

UTF-16:以16位无符号整数为单位,编码情况分为两类:

   (1)Unicode编码<0x10000,UTF-16编码对应的16位无符号数就是Unicode编码

   (2)Unicode编码≥0x10000,先将Unicode编码-0x10000,然后将5个字节的Unicode码等分成2个10位,即:yyyy yyyy yyxx xxxx xxxx,对应的UTF-16编码为110110yyyyyyyyxx和110111xxxxxxxxxx。

UTF-32:Unicode对应的编码就是UTF-32编码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值