unicode与UTF-8

x33g5p2x  于2021-11-09 转载在 其他  
字(0.5k)|赞(0)|评价(0)|浏览(176)

字符集要解决的第一个问题是描述文字,包括字符、数字和符号等。最开始的方案是ASCII,它的编码规则也很简单,一个code point占用一个字节。它由美国人发明,在英文环境下运行的很好。

当计算机越来越普及时,人们发现ASCII字符集无法显示其它国家的语言文字,比如中文,于是各个国家就开始发明自己的编码,中国人发明了GB2312和GBK等,来解决中文的显示问题。

为了避免各国自己造轮子,ISO看不下去了,搞了一个UNICODE字符集,直接解决了世界上所有的语言字符集问题。但是,另外一个问题随之而来,就是存储的问题,ASCII字符集中的英文,每个字符只需要占1个字节,而每个中文汉字至少需要占用两个字节,如果只存储英文的话,就会造成存储空间的巨大浪费。

再后来,随着互联网的出现,UTF-8出现了,并成为了现在的标准。它是Unicode的一种变长的实现方式,可以使用1~4个字符来表示一个符号,它规定了什么字符占用1个字节,什么字符占用2个字节等。

unicode是字符集,用来描述符号,为全世界的所有符号预留了一个唯一的code point(码点),就是Unicode世界的一个代号,本质就是一个数字。

utf-8是编码规则,就是如何将code point转换为字节,从而可以进入计算机的世界。

相关文章