时常听到Unicode,UTF-8,ASCII,GBK。。。一系列与字符相关的概念,傻傻分不清楚。
背景介绍
我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。
相关概念
字符集:一个规则集合的名字,对应到真实生活中,字符集就是对某种语言的称呼。例如:英语,汉语,日语,ASCII。
编码字符集:用一个编码值code point来表示一个字符在字库中的位置。
字符编码: 将编码字符集和实际存储数值(二进制,十六进制等等)之间的转换关系。

为啥有了字库表,还非要通过字符编码将其转化成编码字符集,不直接使用字库表的序号表示呢?
世界太大,不同地区所使用的语言比较专一,字库表虽然涵盖所有,但是对于相差较大的中文和英语表示起来成本较高(ASCII一个字符,而中文可能要三个),所以需要通过 UTF-8编码这种变长编码来进行统一表达。
推荐阅读: 十分钟搞清字符集和字符编码 • cenalulu's Tech Blog
推荐阅读: Strings, bytes, runes and characters in Go - The Go Programming Language
本文揭示字符集与编码的关系,重点讲解ASCII、Unicode的基本概念,以及UTF-8编码的出现原因和优势,帮助理解为何需要统一字符表达。
1万+

被折叠的 条评论
为什么被折叠?



