由于在2003年将Unicode代码空间限制为21位值,因此根据代码点的数值中的有效位数,将UTF-8定义为以1到4个字节对代码点进行编码。下表显示了编码的结构。的X字符由代码点的位所取代。
第一个代码点 | 最后一个代码点 | 字节1 | 字节2 | 字节3 | 字节4 |
---|---|---|---|---|---|
U + 0000 | U + 007F | 0xxxxxxx | |||
U + 0080 | U + 07FF | 110xxxxx | 10xxxxxx | ||
U + 0800 | U + FFFF | 1110xxxx | 10xxxxxx | 10xxxxxx | |
U + 10000 | [nb 2] U + 10FFFF | 11110xxx | 10xxxxxx | 10xxxxxx | 10xxxxxx |
前128个字符(US-ASCII)需要一个字节。接下来的1,920个字符需要两个字节进行编码,涵盖几乎所有拉丁字母字母表的其余部分,以及希腊语,西里尔字母,科普特语,亚美尼亚语,希伯来语,阿拉伯语,叙利亚语,Thaana和N'Ko字母,以及组合变音符号标记。在基本多语言平面的其余部分中,字符需要三个字节,其中几乎包含了所有常用字符,[14]包括大多数字符。中文,日文和韩文字符。Unicode其他平面中的字符需要四个字节,其中包括不太常见的CJK字符,各种历史脚本,数学符号和表情符号(象形符号)。
一个“字符”实际上可以占用4个字节以上,例如,一个表情符号标记字符要占用8个字节,因为它是“由一对Unicode标量值构成的”。[15]对于有效的组合字符集,字节数最多可以增加到17 。[16]