utf-8编码

由于在2003年将Unicode代码空间限制为21位值,因此根据代码点的数值中的有效位数,将UTF-8定义为以1到4个字节对代码点进行编码。下表显示了编码的结构。的X字符由代码点的位所取代。

代码点<-> UTF-8转换
第一个代码点最后一个代码点字节1字节2字节3字节4
U + 0000U + 007F0xxxxxxx 
U + 0080U + 07FF110xxxxx10xxxxxx 
U + 0800U + FFFF1110xxxx10xxxxxx10xxxxxx 
U + 10000[nb 2] U + 10FFFF11110xxx10xxxxxx10xxxxxx10xxxxxx

前128个字符(US-ASCII)需要一个字节。接下来的1,920个字符需要两个字节进行编码,涵盖几乎所有拉丁字母字母表的其余部分,以及希腊语西里尔字母科普特语亚美尼亚语希伯来语阿拉伯语叙利亚语ThaanaN'Ko字母,以及组合变音符号标记。在基本多语言平面的其余部分中,字符需要三个字节,其中几乎包含了所有常用字符,[14]包括大多数字符。中文,日文和韩文字符Unicode其他平面中的字符需要四个字节,其中包括不太常见的CJK字符,各种历史脚本,数学符号和表情符号(象形符号)。

一个“字符”实际上可以占用4个字节以上,例如,一个表情符号标记字符要占用8个字节,因为它是“由一对Unicode标量值构成的”。[15]对于有效的组合字符集,字节数最多可以增加到17 。[16]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值