文件的编码是一个怎样的机制
Posted Hanson
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件的编码是一个怎样的机制相关的知识,希望对你有一定的参考价值。
比如我在mac上有个f.txt文件,系统是utf-8编码其中有数据 "\xE6\x97\A5"——在utf-8编码下为汉字"日"
那么我用ultraedit将f.txt另存为以下几个文件:
-
f1.txt文件其实际存储的内容为"\xE6\x97\A5",让ultraedit将其解释为是gb18030编码,那么在ultraedit界面显示为乱码。之后另存为gb18030编码的文件,在mac系统打开却是utf-8,显示正常的。
-
f2.txt文件实际存储内容为"\xE6\x97\A5",解释为utf-8,那么显示为"日"
-
f3.txt文件直接另存为gb18030编码,那么ultraedit会自动改变编码 即把"\xE6\x97\A5"变为"\xC8\xD5"。之后vim打开文件调用ascii编码解释。
问题来了,
既然实际存储数据是"\xE6\x97\A5",那我的编辑器凭什么解释为utf-8编码呢?我想得到GBK解释的乱码怎么办?
是在文档的二进制头部加入某种标记吗,如果是,这种标记该如何查看?
是在编辑器端进行基于编码的语义分析吗?
以上是关于文件的编码是一个怎样的机制的主要内容,如果未能解决你的问题,请参考以下文章
14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段