另一个讨论帖 http://topic.csdn.net/u/20081209/14/282ea0c1-f985-4553-a165-c42eab4755c5.html
使用MSXML loadXML含有中文的UTF8字符串失败
原始的(UTF8编码):
<results> <text="鏂囨湰" a="閾炬帴"> </results> 解码后的:
<results> <text="文本" a="链接"> </results> 原始的loadXML不成功,解码后的是可以loadXML的
使用MSXML loadXML含有中文的UTF8字符串失败
原始的(UTF8编码):
<results> <text="鏂囨湰" a="閾炬帴"> </results> 解码后的:
<results> <text="文本" a="链接"> </results> 原始的loadXML不成功,解码后的是可以loadXML的
1、如果参数类型是VT_BSTR,解析器会把它当作URL或者文件路径来加载文件。
2、如果参数类型是VT_UNKNOWN,解析器会依次从IUnknown接口查询IStream、IPersistStream、IRequest接口,只要查询到任何一个,就直接调用该接口的Load方法来加载。
3、如果参数类型是SAFEARRAY(VT_ARRAY|VT_UI1),解析器把它当作字节数组来加载。上述3种方式(实际应该是5种)你都可以用,有的是读文件,有的是读内存,有的是从网络获取,这些方式加载XML都会从XML内容中获取编码并自动解码。
谢谢jameshooo ,搞定了
SDK果然是这么说的