我正在尝试访问具有BIG5编码段落的网页。检索xml数据后,我使用XMLRead.Create(new StringReader(xmldata))并从reader.Value获取XmlNodeType.Text类型的big5字符。在WP运行时,它不支持BIG5编码,因此我必须获取每个字节并转换为unicode以便在WP7上显示。但是,我从reader.Value得到的字节似乎不是我所期望的。例如,第一个汉字是B5E1。但我得到了FDFD。这有什么不对?
using (XmlReader reader = XmlReader.Create(new StringReader(xmldata)))
while (reader.Read())
switch (reader.NodeType)
case XmlNodeType.Text:
string s = reader.Value;
foreach (byte input in s)
# the input gives unexpected result
要加载的网页为http://feeds.feedburner.com/nownews/politic
我正在使用VS2010进行WP7开发工作。
感谢任何帮助!
答案 0 :(得分:1)
Windows Phone SDK不支持BIG5编码,但如果您需要,请继续使用Silverlight Encoding Generator生成编码类。
答案 1 :(得分:1)
编码定义字节流如何转换为.Net字符串。由于您无法应用BIG5编码,。Net将选择默认编码或XML文件中给出的编码。
结果是,在解析XmlReader时,翻译bytes =>字符串已经发生,而foreach(字符串中的字节)遍历错误翻译的字符串的.Net表示。
我没有使用API的这些部分,但似乎XmlReader methods mentioned here是检索XML节点后面的原始字节流的那些。