关于编码(encoding)的理解

cauiot 2004-05-06 03:30:10
我目前的认识:

一个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解析器如何解析。

好,就写这么多了

...全文
153 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cauiot 2004-05-07
  • 打赏
  • 举报
回复
恩,好
看来我的理解和大家的是一样的了
KAI3000 2004-05-07
  • 打赏
  • 举报
回复
http://www.kingbbs.net/bbs/showforum.asp?boardID=12&RootID=18264&ID=18264
速马 2004-05-06
  • 打赏
  • 举报
回复
默认为ANSI格式
和GB2312还是有些区别的
unicode和utf-8结果一样吗?
记得应该是unicode不管什么字符都是占用同样大小,utf-8对于0-9,a-z这样的字符占用宽度和ANSI一样
如果没记错的话...
Laone 2004-05-06
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="GB2312"?>的encoding的意思不是你指定什么字符就是什么字符,而是用程序(例如:xmldom)生成xml文件的时候,当要输出或者保存xml文件,程序首先就检索encoding,然后,根据你指定的encoding来convert字符串,最后输出或保存文件

同样,当程序(例如:浏览器)要打开xml文档的时候,找到encoding,然后根据encoding把xml文件里的字符串convert为本地默认字符集,这就是为什么用记事本打开utf-8编码的xml文件,会有看似乱码,但是用IE确可以正确浏览的原因

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧