【EverEdit用户手册】初识编码
【EverEdit用户手册】初识编码
应用场景
由于世界语言文字的多样性,不同国家的文字并不能像英文一样以ASCII码(ANSI)方式存储在磁盘上,于是就演化出了UTF-8, UTF-16,GB2312,GBK,BIG5等编码。
注:本文仅是一个引子,并不对编码进行深入探讨!
不同编码在磁盘上的存储方式
原始文本

上图是一行英文文本+一行中文,下面我们来看下不同的编码下,其在磁盘上的存储方式。
GB2312编码

从图中可以看到,中文部分的编码两个字节代表1个字,且每个字节的编码都不在ASCII编码区域。
UTF-8编码

可以看到,对中文部分的编码,UTF-8和GB2312完全不同,但英文字符保持了一致。
UTF-16编码

上图中,英文部分,1个字符也使用了2字节编码,中文也还是1个字符两个字节存储,并在文件结尾使用“FF”来标记结束。
UTF-16 Big Endian(大端)编码

可以看到,与UTF-16编码的差别是,每个字符的两个字节是相反的!
后记
要把这么几十上百种不同的编码,从磁盘上读取出来,并在编辑器中显示为用户可读的文字,编辑器要做的事可真不简单,这也是为什么很多编辑器,仅支持寥寥几种编码方式。
免责声明:本文中所用到数据样例均来源于: 互联网公开信息、豆包AI、Python Faker库生成的伪数据、或作者随机编写,其目的仅用于编辑器软件的使用解说,如有雷同涉及侵权或隐私,请联系作者删除!
文档作者声明:本文档仅用于学习交流,未经作者许可,不得将本文档用于其他目的。
Copyright © 2022~2024 All rights reserved.

浙公网安备 33010602011771号