另一个讨论帖 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的 

解决方案 »

  1.   

    loadXML只认UNICODE字符串,所以调用之前必须自己转换成UNICODE,如果需要XMLDOC自己来解析,必须使用load方法,load方法的参数是VARIANT,可以传递多种类型:
    1、如果参数类型是VT_BSTR,解析器会把它当作URL或者文件路径来加载文件。
    2、如果参数类型是VT_UNKNOWN,解析器会依次从IUnknown接口查询IStream、IPersistStream、IRequest接口,只要查询到任何一个,就直接调用该接口的Load方法来加载。
    3、如果参数类型是SAFEARRAY(VT_ARRAY|VT_UI1),解析器把它当作字节数组来加载。上述3种方式(实际应该是5种)你都可以用,有的是读文件,有的是读内存,有的是从网络获取,这些方式加载XML都会从XML内容中获取编码并自动解码。
      

  2.   

    <results> <text="鏂囨湰" a="閾炬帴"/> </results> 你这样不叫UTF-8编码,哥们。
      

  3.   

    OK
    谢谢jameshooo ,搞定了
    SDK果然是这么说的
      

  4.   

    他大爷的,主要是被 SDK上 的VB和SCRIPT给迷惑了,没往下看