这里以txt文件中的汉字为例, 介绍文本编辑器如何显示汉字的过程:
1. 二进制(文件,你可以把一个文件理解为一串1+0构成的内容.也可以叫落地码编码的内容)——
2. 通过落地码识别出每个字符(落地码,就是utf-8/utf-16/gbk这一类编码, 它们能够将连续的1/0组成的数字串切割(解码过程)成能n个小块(块的长度不一定相同!),每块表示一个字符(一个汉字). 而如何切割, 就是这一类编码的意义所在,具体参考每个编码定义)——
3. 每个小块转成对应的unicode值(unicode也是一种码, 他是用来区分字符和字符之间的唯一性. 即每一个不同的字符的unicode都是不同的. 它一般有固定的长度. 从落地码转成unicode码, 有固定的对应关系,具体参考落地码的编码规范)——
4. 每个unicode值映射到字体库中对应的文字图案()——
5. 读取并显示含有文字的图片
注:
从2开始, 每取下一个块,就可以立即执行345,或者取特定个之后再一起执行345.
英文也可以参照这个过程, 只是比中文更加简单, 比如2的时候,每一个英文字符的块长都是一样的.
一个文件只能有一种落地码, 并且编辑器需要知道这个落地码是哪一个码. 如果不匹配,就会看到所谓的乱码. 也不是说一定只能一种码...除非你知道你在搞什么..
落地码无处不在. 比如windows系统的默认编码,这个会影响你的粘帖板. 有时候粘帖板中也会包含字体信息.
特别要注意的是, unicode其实也算是一种落地码,只是现在一般用的不多. 当作为落地码时, 格式有ucs-2/ucs-4这两种. 比如windows记事本保存的时候有unicode选项,它默认是ucs-2.
如果有错误的地方忘指出, 谢谢!
附上两个工具:
unicode查询-网页链接
utf8转二进制等-网页链接