为了账号安全,请及时绑定邮箱和手机立即绑定

UTF-8,UTF-16和UTF-32

UTF-8,UTF-16和UTF-32

红颜莎娜 2019-09-27 16:36:26
UTF-8,UTF-16和UTF-32有什么区别?我知道它们都将存储Unicode,并且每个都使用不同数量的字节来表示字符。选择一个而不是另一个有优势吗?
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

在ASCII字符代表文本块中大多数字符的情况下,UTF-8具有一个优势,因为UTF-8将所有字符编码为8位(例如ASCII)。还有利的是,仅包含ASCII字符的UTF-8文件具有与ASCII文件相同的编码。

UTF-16在ASCII不占优势的情况下更好,因为它主要每个字符使用2个字节。对于高阶字符,UTF-8将开始使用3个或更多字节,而对于大多数字符,UTF-16仅保留2个字节。

UTF-32将覆盖4个字节中的所有可能字符。这使它显得肿。我想不出使用它的任何优势。


查看完整回答
反对 回复 2019-09-27
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

简而言之:

  • UTF-8:可变宽度编码,向后兼容ASCII。ASCII字符(U + 0000至U + 007F)占1个字节,代码点U + 0080至U + 07FF占2个字节,代码点U + 0800至U + FFFF占3个字节,代码点U + 10000至U + 10FFFF占用4个字节。适合英语文本,不适合亚洲文本。

  • UTF-16:可变宽度编码。代码点U + 0000至U + FFFF占用2个字节,代码点U + 10000至U + 10FFFF占用4个字节。对英语文本不利,对亚洲文本不利。

  • UTF-32:固定宽度编码。所有代码点占用四个字节。巨大的内存消耗,但是操作起来很快。很少用。

详细地说:请参阅Wikipedia:UTF-8,UTF-16和UTF-32。


查看完整回答
反对 回复 2019-09-27
  • 3 回答
  • 0 关注
  • 771 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信