开发者社区> 问答> 正文

有了 Unicode 为啥还需要 UTF-8?

有了 Unicode 为啥还需要 UTF-8?

展开
收起
vncamyi27xznk 2021-11-17 23:23:37 654 0
1 条回答
写回答
取消 提交回答
  • 广义的 Unicode 是一个标准,定义了一个字符集以及一系列的编码规则,即 Unicode 字符集和 UTF-8、UTF-16、UTF-32 等等编码规则。 Unicode 是字符集。UTF-8 是编码规则。 unicode 虽然统一了全世界字符的二进制编码,但没有规定如何存储。 如果 Unicode 统一规定,每个符号就要用三个或四个字节表示,因为字符太多,只能用这么多字节才能表示完全。 一旦这么规定,那么每个英文字母前都必然有二到三个字节是 0,因为所有英文字母在 ASCII 中都有,都可以用一个字节表示,剩余字节位置就要补充 0。 如果这样,文本文件的大小会因此大出二三倍,这对于存储来说是极大的浪费。这样导致一个后果:出现了 Unicode 的多种存储方式。 UTF-8 就是 Unicode 的一个使用方式,通过他的英文名 Unicode Tranformation Format 就可以知道。 UTF-8 使用可变长度字节来储存 Unicode 字符,例如 ASCII 字母继续使用 1 字节储存,重音文字、希腊字母或西里尔字母等使用 2 字节来储存,而常用的汉字就要使用 3 字节。辅助平面字符则使用 4 字节。 一般情况下,同一个地区只会出现一种文字类型,比如中文地区一般很少出现韩文,日文等。所以使用这种编码方式可以大大节省空间。比如纯英文网站就要比纯中文网站占用的存储小一些。 资料来源:《Java工程师成神之路(基础篇)》 链接:https://developer.aliyun.com/topic/download?id=923

    2021-11-18 15:30:05
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载