关于UTF-8的变长

UTF-8数据所占字节为什么会变呢?
汉字一般就是3字节,会不会变成4字节呢?什么情况下会变呢?

阅读 6.4k
1 个回答

Unicode 对对字符进行编码,即给予每个字符一个独一无二的编码用于表示。

UTF-8则是存储编码,将具体的Unicode按照一定规则保存。UTF-8 的编码规则请参照这个地址

既然用于存储,也会涉及到传输,UTF-8使用变长的方式有节省空间、自动纠错性能好、利于传输、扩展性强等有点,劣势是不利于程序内部处理。

链接所指的网页里有对编码范围对应的字节长度做了一个整理,其中有提到当 Unicode 编码范围为0800 ~ FFFF 时,UTF-8 使用三个字节编码,而根据最新的CJK字符表,中文所在的范围是4E00 ~ 9FCF,也就是在这个范围内,所以一般(CJK 还有扩展字符集,其中 CJK Extension B 是从 U2000 开始的)不会使用 4 个字节编码。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进