关于编码

如果现在没有txt文件,让你设计最简单的txt实现,你会如何做呢?

直接写硬盘?

显然这样不好。姑且不说这样会频繁地造成中断,而且如果我们保存的时候也会是一个难题。是保存成ANSI还是UTF8还是Unicode呢?如果一开始直接写硬盘,默认的格式是ANSI,那到时我们需要save as的时候,硬盘的调整操作量就大了。所以,第一,不要直接写硬盘,先保存在内存里面。即便到时你需要save as成别的格式,操作也是先在内存中操作,然后依次写硬盘。

当然,上面的实现最简单的txt只是个引子,是为了引出我们文章的主题:编码。

txt实现有一个中间态,这个状态是由实现者提供,整体数据模型类似如下:

write:

input  -->   中间态  -->  ANSI

                           -->  UTF8

                          ---> UNICODE

read:

存储数据 ->

程序需要制定编码方式,若不指定,则由程序通过存储数据中的一些标志位进行猜测,猜测后选择编码方式 ->

通过编码把存储数据进行解析,读入内存 ->

显示



你可能感兴趣的:(编码)