比如我在mac上有个f.txt文件,系统是utf-8编码其中有数据 "xE6x97A5"——在utf-8编码下为汉字"日"
那么我用ultraedit将f.txt另存为以下几个文件:
-
f1.txt文件其实际存储的内容为"xE6x97A5",让ultraedit将其解释为是gb18030编码,那么在ultraedit界面显示为乱码。之后另存为gb18030编码的文件,在mac系统打开却是utf-8,显示正常的。
-
f2.txt文件实际存储内容为"xE6x97A5",解释为utf-8,那么显示为"日"
-
f3.txt文件直接另存为gb18030编码,那么ultraedit会自动改变编码 即把"xE6x97A5"变为"xC8xD5"。之后vim打开文件调用ascii编码解释。
问题来了,
既然实际存储数据是"xE6x97A5",那我的编辑器凭什么解释为utf-8编码呢?我想得到GBK解释的乱码怎么办?
是在文档的二进制头部加入某种标记吗,如果是,这种标记该如何查看?
是在编辑器端进行基于编码的语义分析吗?