UTF-16编码表

BMP / 代理对 / 码元 / Unicode码点

编码规则

U+0000-U+FFFF1个16位码元

直接用码点值表示,排除代理区

中 = 4E2D
U+10000-U+10FFFF2个16位码元

使用高代理D800-DBFF和低代理DC00-DFFF

😀 = D83D DE00
字符名称Unicode码位字节说明
A拉丁字母AU+00410041BMP字符,一个16位码元
汉字中U+4E2D4E2DBMP字符,一个16位码元
😀笑脸EmojiU+1F600D83D DE00补充平面字符,使用代理对

UTF-16编码说明

UTF-16使用一个或两个16位码元表示Unicode字符,BMP字符用一个码元,补充平面字符用代理对。 如需做实际文本转换,可使用编码转换工具,Unicode互转可使用Unicode转换工具

常见问题

UTF-16中Emoji为什么长度是2?

很多Emoji位于补充平面,UTF-16需要两个16位码元组成代理对表示。

UTF-16和Unicode一样吗?

不一样。Unicode是码点标准,UTF-16是Unicode的一种编码方式。

UTF-16BE和UTF-16LE有什么区别?

UTF-16BE使用大端字节序,UTF-16LE使用小端字节序,二者字节顺序不同。

UTF-16代理对范围是多少?

UTF-16高代理范围是D800-DBFF,低代理范围是DC00-DFFF。