读XML文件乱码的原因以及解决方案
2008-09-04 16:13
274 查看
今天发现读取文档的时候发现乱码,但是用工具打开一看却是好的。google了一下,发现果然是编码问题,记录一下:
其实这个问题的罪魁祸首是vs.net的编辑器,在ms下一般文档编辑器(notepad,ultraedit)都是使用操作系统缺省编码(不同的系统会不同),如在我的英文xp是ansi,vs.net新建文档的保存以后使用的编码却是utf8,大概是为了和streamreader和streamwriter打开文档缺省得encoding为utf8确保一致的缘故吧。
为什么我们用工具打开却是好的,那是因为ms的任何编辑器都会根据文档中使用的编码自动使用对应的编码打开文档。
所以总结出来解决问题,首先要看得是这个文档的创建工具(注意是创建程式,而不是文档的缺省打开工具)是哪个在决定使用对应的encoding打开文档,而不是盲目的尝试各种编码
针对一些windows工具创建的文档能够使用
streamreader read = new streamreader(filename, system.text.encoding.default);
vs.net创建的文档能够使用
streamreader read = new streamreader(filename);
对于一些网络流如httpresponse的字节流,能够使用其他gb2312
其实这个问题的罪魁祸首是vs.net的编辑器,在ms下一般文档编辑器(notepad,ultraedit)都是使用操作系统缺省编码(不同的系统会不同),如在我的英文xp是ansi,vs.net新建文档的保存以后使用的编码却是utf8,大概是为了和streamreader和streamwriter打开文档缺省得encoding为utf8确保一致的缘故吧。
为什么我们用工具打开却是好的,那是因为ms的任何编辑器都会根据文档中使用的编码自动使用对应的编码打开文档。
所以总结出来解决问题,首先要看得是这个文档的创建工具(注意是创建程式,而不是文档的缺省打开工具)是哪个在决定使用对应的encoding打开文档,而不是盲目的尝试各种编码
针对一些windows工具创建的文档能够使用
streamreader read = new streamreader(filename, system.text.encoding.default);
vs.net创建的文档能够使用
streamreader read = new streamreader(filename);
对于一些网络流如httpresponse的字节流,能够使用其他gb2312
相关文章推荐
- Dom4j保存数据乱码以及xml文件头编码格式改变的原因和解决方法
- android studio中 R文件丢失可能的产生原因 以及解决方案
- 引用js文件时,其中的中文乱码的原因及解决方案
- Keil、ultraedit以及sourceinsight打开代码文件乱码解决方案
- eclipse打开Struts2包中struts-default.xml报错的原因以及解决方案
- Myeclipse打开xml properties jsp等文件乱码的终极解决方案
- boost::xml——基本操作以及中文乱码解决方案 (续)
- 自定义C/C++ dll导出后函数名为乱码(如@func@@YGXHX@Z)原因以及解决方案
- URL传参的中文乱码原因以及解决方案
- Myeclipse打开xml properties jsp等文件乱码的终极解决方案
- 数据库xml配置文件无法输入&导致中文乱码的解决方案
- Android Studio中R文件丢失可能的产生原因 以及解决方案
- JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案
- boost::xml——基本操作以及中文乱码解决方案
- web.xml is missing and <failOnmissingwebxml> is set to true 原因以及解决方案
- 浅析dom4j解析xml文件及其乱码问题以及与后台数据进行交互
- three20 报出 文件 no such file or directory的原因以及解决方案
- spring mvc 配置web.xml servlet.xml文件配置以及出现异常的解决方案
- [转]JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案
- 无法删除文件,无法读源文件或磁盘:U盘文件夹乱码无法删除的原因及解决方案...