关于编码(encoding)的理解
我目前的认识:
一个windows下文件常分为二进制文件(.exe,.com等),文本文件(.txt,.html,.xml等),其他特定格式文件(.doc,.xls,.ppt等)
上述二进制文件中存放的是机器指令,应该无encoding之说。
其他某些特定的文件由特定的解释程序进行解释。
剩下的那些文件就涉及了编码格式的要求。
讨论一下.txt和.xml:
(实验)
1:我用editplus建了一个文件test1.txt,默认方式保存;以gb2312保存为test-gb2312.txt,以unicode保存为test-unicode.txt,以utf8保存为test-utf8.txt,以us-ascii保持为test-ascii.txt。
2:用ultraedit的二进制方式打开这些文件,并对比。发现:test1.txt和test-gb2312.txt内容一样;test-unicode.txt和test-utf8.txt内容一样,开头两个字节是fe ff;test-ascii.txt中中文的地方全为3f(?)取代了。
3:结论:其实这些文件用对应的编码解码器解析也就行了。
但是:.xml文件中经常都有<?xml version="1.0" encoding="gb2312" ?>,为什么要有这一句呢?
我的理解是:对于test.xml,这一句表明这篇文档应当由xml解析器如何解析。
好,就写这么多了