首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

为何读取远程回来的XML中有中文的内容时均为?解决办法

2012-02-22 
为何读取远程回来的XML中有中文的内容时均为?请求端加载要发送的请求XML数据DimdocSubmitSetdocSubmitCre

为何读取远程回来的XML中有中文的内容时均为?
请求端

    '加载要发送的请求XML数据
    Dim   docSubmit
    Set   docSubmit   =   CreateObject( "Microsoft.XMLDOM ")
    docSubmit.async   =   False
    docSubmit.loadXML   xmlMessage

    '向远程发送XML请求数据
    Set   poster   =   CreateObject( "MSXML2.XMLHTTP ")  
    poster.open   "POST ",   url,   False
    poster.send   docSubmit


    '接收远程返回的结果
    Dim   responseData,objstream  
    set   objstream   =   Server.CreateObject( "adodb.stream ")
    objstream.Type   =   1  
    objstream.Mode   =3  
    objstream.Open  
    objstream.Write   poster.responseBody  
    objstream.Position   =   0  
    objstream.Type   =   2  
    objstream.Charset   =   "GBK "  
    responseData   =   objstream.ReadText
    objstream.Close  
    set   objstream   =   nothing  


    response.write   responseData
    '此时,这里直接打印返回的XML数据时,有中文部分就变成?,如
<?xml   version= '1.0 '   encoding= 'GBK '?> <root> <Item> <isSuccess> false </isSuccess> <Message> IP??,??????! </Message> <UserID> </UserID> <UserName> </UserName> </Item> </root>


远程服务端
responseData= " <?xml   version= '1.0 '   encoding= 'GBK '?> <root> "
responseData=responseData& " <Item> <isSuccess> false </isSuccess> <Message> IP地址 "&requestIP& ",非法访问页面! </Message> <UserID> </UserID> <UserName> </UserName> </Item> "
response.write   responseData


[解决办法]
不是这样子的。

如果远程服务端是一个xml文件,并且把字符集定义为中文,那么没问题

如果远程服务端是一个程序文件,例如asp,即使他把字符集定义为中文,用你这种方式调用也会出问题,他必须在程序中定义content type= "xml " ,这样才没问题。

热点排行