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个字节中的所有可能字符。这使它显得肿。我想不出使用它的任何优势。
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。
- 3 回答
- 0 关注
- 771 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消