上一篇:Returning info from a Web Service
我认为之前的回答是100%有道理的,虽然我已经走出困境,但它仍然失败。
我正在使用的应用程序似乎仍然认为从Web服务返回的内容是ASCII编码的。调试它显示:
<Envelope><Body><ReturnOneResponse><ReturnOneResult><xml version="1.0" encoding="UTF-8"><Entry><Symbol>PACR</Symbol><Company>Pacer International, Inc.</Company><MarketCap>$229.0M</MarketCap><PE>18.7</PE><Price>6.56</Price><Change>0.42</Change><PctChange>6.84%</PctChange><YTDChange>107.59%</YTDChange></Entry></ReturnOneResult></ReturnOneResponse></Body></Envelope>
因此,从Web服务返回的所有内容似乎都会更改为ASCII,并且似乎拒绝读取为UTF-8。
由于我在上面的链接中的上一个代码,我也改变了我的字符串调用:
string value = @"<?xml version=""1.0"" encoding=""utf-8""?>";
但是,这没有用。
还有其他想法吗?
答案 0 :(得分:0)
我认为问题在于您的字符串被转义的某个地方。 也许如果你使用像Server.HTMLDecode这样的东西来取消你的字符串它将起作用
答案 1 :(得分:0)
您没有说明您在网络服务中使用的语言/系统。但是,仅将XML标头设置为包含编码不会导致数据流以这种方式进行编码。您必须采取一些操作来在写入输出流的位置指定输出编码。
编辑:对于包含XML的SOAP回复,双重转义可能是正常的。否则,SOAP协议很容易被行为不当的SOAP服务破坏。 SOAP信封/主体必须是有效的XML,因此必须对任何嵌入的XML数据进行编码,以防止错误使SOAP信封/正文无效。
你必须在客户端中取消它。