基于Win32 console的MSXML读取中文的问题解决过程
2004-12-10 19:23
357 查看
前几天,需要在程序中加入解析XML的程序,于是开始了学习。
以前在Solaris平台上用过Apache的基于java的Xerces,估计应该问题不大。这次是在Windows上开发,于是就准备用MSXML。首先在www.microsoft.com下载了一个MSXML SDK 4.0 SP2,安装了之后按照帮助文件中写了一个SAX2的程序(Visual C++ Win32 Console的程序),运行成功。接着开始读我自己的XML文件,傻眼了,中文属性读不出来!跟踪到SAX2的ContentHandler,读取属性的getValue返回的字符长度中为2,只是一个”好而已!
首先,我想到可能是encoding的问题,使用XMLSPY 2005将encoding调为gb2312,utf-8,utf-16,ucs-2等,都不行!
然后,我将工程改为Unicode编译,也不行!确省的MBCS也不行。
第三步,上了微软中国网站,下了一个msxmlchs.msi中文版,安装,问题依旧!
第四步,下载了Xerces C,编译examples中的SAX2Print,能读中文,但需要一个转换类,感觉和MFC结合的
不是很好(也许是我对Xerces C不熟),虽作罢。
第五步,使用DOM模型,还是读不出中文!
第六部,使用smart pointer DOM,终于可以读出中文了,但我还是想找一下DOM和SAX2为什么读不出中文。
最后在网上找了一些资料,终于找出原因了,要调用setlocale(LC_ALL,“chinese-simplified“).看来还是C语言不过关。
在MFC应用程序中没有这么多麻烦,直接可以用
以前在Solaris平台上用过Apache的基于java的Xerces,估计应该问题不大。这次是在Windows上开发,于是就准备用MSXML。首先在www.microsoft.com下载了一个MSXML SDK 4.0 SP2,安装了之后按照帮助文件中写了一个SAX2的程序(Visual C++ Win32 Console的程序),运行成功。接着开始读我自己的XML文件,傻眼了,中文属性读不出来!跟踪到SAX2的ContentHandler,读取属性的getValue返回的字符长度中为2,只是一个”好而已!
首先,我想到可能是encoding的问题,使用XMLSPY 2005将encoding调为gb2312,utf-8,utf-16,ucs-2等,都不行!
然后,我将工程改为Unicode编译,也不行!确省的MBCS也不行。
第三步,上了微软中国网站,下了一个msxmlchs.msi中文版,安装,问题依旧!
第四步,下载了Xerces C,编译examples中的SAX2Print,能读中文,但需要一个转换类,感觉和MFC结合的
不是很好(也许是我对Xerces C不熟),虽作罢。
第五步,使用DOM模型,还是读不出中文!
第六部,使用smart pointer DOM,终于可以读出中文了,但我还是想找一下DOM和SAX2为什么读不出中文。
最后在网上找了一些资料,终于找出原因了,要调用setlocale(LC_ALL,“chinese-simplified“).看来还是C语言不过关。
在MFC应用程序中没有这么多麻烦,直接可以用
相关文章推荐
- 基于Win32 console的MSXML读取中文的问题解决过程
- 基于Tomcat的JSP开发过程中的中文乱码问题解决
- 基于Tomcat的JSP开发过程中的中文乱码问题解决
- 基于Tomcat的JSP开发过程中的中文乱码问题解决
- JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决
- 解决生成的saiku文件读取中文乱码的问题
- 解决使用Properties读取中文乱码问题
- php 读取xml的方法 (iconv解决中文乱码问题)
- 读取文件,解决中文乱码问题
- Pligg beta9.7升级到pligg beta 9.8过程遇到的(中文支持)问题解决
- java读取默认编码是ansi的文本文件时,解决中文乱码问题
- Perl读取Excel文件并解决中文乱码问题
- GDAL读取S-57海图数据中文属性值乱码问题解决
- Andoird - 解决读取txt文件中文乱码问题
- spring使用@Value标签读取*.properties文件的中文乱码问题的解决
- java读取.properties文件及解决中文乱码问题
- 【转载】《Flexpaper二次开发入门教程》(十八) 解决中文SWF不能读取问题(5.6节) ... ... ... ...
- 文章标题 解决IDEA读取txt文本中显示的中文乱码问题
- Silverlight读取包含中文的txt(解决乱码问题)
- 有关我在SSHD(SSH三大框架和DWR框架)整合过程中出现的中文乱码问题的解决