XML文件编码问题
这两天的过程中的一个项目,以解决编码格式ANSI的xml当文件。我遇到了一些问题。下面的例子现在将总结分析过程。
通过win7记事本或notepad++创建一个xml文件test_source:
<?xml version="1.0" encoding="utf-16"?> <note> <name>coffeecat</name> <chn>"測试"</chn> </note>
能够看到在xml文件的第一行。声明编码格式为utf-16。也就是unicode,使用IE浏览器打开test_source失败。
通过Ultra Edit将上述已创建的xml另存为test_ue,在保存时,显式的设置编码为utf-16。通过浏览器却能直接打开,这是为什么?
在网上查阅了一些资料,问题可能出在xml文件头中声明的字符编码与实际保存文件的编码格式不符。
验证:
使用Ultra Edit将test_source和test_ue打开,并切换为十六进制编辑模式:
test_source:
test_ue:
当中前两位标示出了文件实际存储格式的不同,以3C 3F开头的文件为ANSI格式存储的文件,而以FF FE开头的文件是Unicode little endian格式存储的。
结论:
要成功使用IE浏览器打开xml文件,一定要确保xml文件的格式声明与实际存储格式一致,建议在编辑xml文件时,尽量使用Ultra Edit等专业的工具进行。假设不能确定文件期望的保存格式,能够将xml中的格式声明部分(encoding="utf-16")删掉。这样xml文件也能够在IE浏览器中打开。(能够临时解决这个问题。但不建议,可能引起的问题未知)
额外的:
在工作中,碰到了须要解析一份ANSI编码格式的xml文件,如上述的test_source.xml。当中包括了中文字符。为了不影响解析的功能,无法通过Ultra Edit将其编码格式改动为Unicode。可是项目须要这份xml文件能够随时通过IE浏览器查看。该怎么办呢?
问题还是出在xml文件的格式声明上,既然实际文件为ANSI,与声明中的encoding="utf-16“不符,那么应该将声明的编码格式改为与ANSI一致的就可以。既然要与包括中文的ANSI编码格式相符,自然想到了汉子编码字符集GB2312,将encoding="utf-16“改动为encoding="gb2312“,就可以使用IE浏览器打开xml文件了。
或者使用除了包括中文字符还包括繁体、日、韩文字字符的更全面的字符集GBK。
參考资料:
http://tjmljw.iteye.com/blog/1500370
http://ljhzzyx.blog.163.com/blog/static/3838031220129701845443/
http://blog.csdn.net/chaijunkun/article/details/4654397
相关文章
- glusterfs分布式文件存储搭建和使用[通俗易懂]
- 计算机无法识别ANSI编码文件里的中文导致乱码「建议收藏」
- python 写入文件时编码问题
- 2023-02-28:moonfdd/ffmpeg-go是用go语言绑定ffmpeg的库,目前是github上最好用的库。请用go语言将yuv文件编码为h264
- 【错误记录】GitHub 提交代码失败、获取代码失败、连接超时、权限错误、ping 请求连接超时 ( 查找域名对应 IP | 设置 host 文件 )
- java和Struts2实现文件下载和上传详解编程语言
- Linux读取XML文件的快速方法(linux读取xml文件)
- 格式Linux查看文件编码格式:一步到位(linux下查看文件编码)
- Linux下探究文件编码格式的方法(linux查看文件编码格式)
- Linux命令查看文件编码信息(linux命令查看编码)
- Linux文件打开数有限:一种解决方案(linux打开文件数限制)
- 探索Linux下查看文件编码的方法(linux查看编码)
- Linux查看文件编码的简便方法(linux编码查看)
- 如何使用MySQL导出XML文件?(mysql导出xml)
- Oracle RAC 文件:协同性集群技术简述(oraclerac文件)
- 如何在Linux上查看文件编码(查看文件编码linux)
- 可上传大小与如何限制Linux单文件最大可上传大小及限制方法(linux单文件最大)
- Linux下快速转换文件编码的实现方法(linux转换编码)
- Linux文件编码:让字符串“看得见”(linux文件字符编码)
- Linux下编辑XML文件的快捷方法(linux 编辑xml)
- Linux上传文件的简单工具使用指南(linux 上传文件工具)
- MSSQL方式快速生成XML文件(mssql 生成xml)
- Oracle 导出XML文件的技巧(oracle写xml文件)
- JavaIO文件编码转换实现代码
- java自动根据文件内容的编码来读取避免乱码
- asp解密、还原chrw、chr编码文件的方法