UTF-8 编码

UTF-8 编码是针对Unicode的一种可变长度字符编码。

UTF-8 编码

特点

  • 1采用变长多字节编码,采用1-4个字节对字符进行编码;
  • 2能够表示UNICODE标准中任何字符;
  • 3Unicode只是一组字符设定或者说是字符逻辑映射的概念编码,可认为是一个字符集;
  • 4UTF-8是Unicode字符编码在计算机中储存编码;

字节编码与字符

  • 单字节编码: ASCII字符 Unicode范围:U+0000-U++7F
  • 双字节编码: 带变音符号的语言字符 Unicode范围: U+0080-U+07FF
  • 三字节编码: 中日韩CJK、东南亚、中东语言字符
  • 四字节编码: 极少使用的语言字符

字节编码规则

  • 单字节字符,字节的二进制最高位位值为0。
  • 多字节字符,首字节的二进制连续高位位值为1的个数决定字节数目,其他字节的二进制前两位一律为10,剩余的二进制位值由Unicode码点值决定。
1字节 0xxxxxxx
2字节 110xxxxx 10xxxxxx
3字节 1110xxxx 10xxxxxx 10xxxxxx
4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Unicode码点范围与UTF-8编码字节

1字节 7 U+0000 0000 U+0000 007F 0xxxxxxx
2字节 11 U+0000 0080 U+0000 07FF 110xxxxx 10xxxxxx
3字节 16 U+0000 0800 U+0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
4字节 21 U+0001 0000 U+0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

Unicode 编码与字符集

微信服务公众号

微信服务公众号