需要编程读取XML文件,但是XML里面有中文。
XML文件中没有标明encoding类型,但是我只有读已有XML的选择,无法强制要求做成者加上encoding(大部分都是历史遗留文档)。从VC编码的角度的话,有办法解决这个问题吗?
我试验过,把XML转换成UNICODE可以正常读取,但是我不可能让用我软件的人先把手头的XML都转成UNICODE再使用。
XML文件中没有标明encoding类型,但是我只有读已有XML的选择,无法强制要求做成者加上encoding(大部分都是历史遗留文档)。从VC编码的角度的话,有办法解决这个问题吗?
我试验过,把XML转换成UNICODE可以正常读取,但是我不可能让用我软件的人先把手头的XML都转成UNICODE再使用。
http://blog.csdn.net/firebird321/archive/2008/03/17/2190992.aspx
的做法。在
childNode = (MSXML2::IXMLDOMElementPtr)(pDoc->selectSingleNode("//City"));
这一步的时候,如果包含中文汉字,childNode 的返回值就一直是0。如果要进行UNICODE转换的话,应该在哪里加?
如果XML是一个文件,你可以把文件路径直接交给document::load来加载,它会判断编码。
<aaa>
<bbb ccc="汉字">ddd</bbb>
</aaa>
那么childNode = (MSXML2::IXMLDOMElementPtr)(pDoc->selectSingleNode("//bbb"));
之后,childNode = 0 。4楼说的Load文件路径,是说
MSXML2::IXMLDOMDocumentPtr pDoc;
pDoc->load("d:\XmlPath");
这类的写法吗?
将“m_strEncoding = MCD_T("UTF-8");”修改为“m_strEncoding = MCD_T("GB2312");”。