【发布时间】:2011-07-13 09:50:06
【问题描述】:
编辑:通过更改 web 服务解释 GET 请求(到 UTF-8)的方式解决了这个问题。
我将一个字符串发送到一个向我返回 XML 的 URL。但是,如果我发送特殊字符(例如 å、ä、ö),生成的 XML 将不正确。而且我无法让它工作。
string name= "abc def åäö";
//name= Uri.EscapeUriString(address); - i also tried this but it messes up the åäö chars in the resulting xml
string uri = "http://blablabla&address=" + name+ "&outputFormat=xml";
System.Xml.XmlDocument x = new System.Xml.XmlDocument();
x.Load(uri);
XmlElement root = x.DocumentElement;
foreach (XmlNode node in root.ChildNodes)
{
XmlAttribute attr = (XmlAttribute)node.Attributes.GetNamedItem("name");
System.Windows.Forms.MessageBox.Show(attr.Value);
}
【问题讨论】:
-
您是否尝试在网络浏览器中加载相同的文档以查看是否获得相同的文档?
-
如果我只是在浏览器中使用相同的字符加载相同的 URL,我会得到正确的结果。
-
这个问题和
XmlDocument一点关系都没有。尝试使用WebClient下载文档。您首先必须弄清楚如何让对方正确响应,然后才能担心将正确的响应加载到XmlDocument。 -
我正在使用 CF,所以我尝试了 HttpWebRequest 而不是 WebClient,但它似乎像 Load 方法一样将十六进制代码发送到另一端。还有什么我可以尝试得到正确响应的方法吗?
标签: c# xml encoding xmldocument