【发布时间】:2012-05-04 15:31:29
【问题描述】:
我正在尝试访问具有 BIG5 编码段落的网页。检索 xml 数据后,我使用 XMLRead.Create(new StringReader(xmldata)) 并从 XmlNodeType.Text 类型的 reader.Value 中获取 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 开发工作。
感谢任何帮助!
【问题讨论】:
-
由于 big5 是一个双字节字符集,您一次需要两个字节才能获得正确的字符。根据您的示例,您似乎只读取一个字节。
-
谢谢。我试图获取第一个字节以查看前导字节是否在范围内。但值不是 B5 或 E1。
-
我猜 "String s = reader.Value;", s 已经被修改了。所以我读出的字节是错误的。如果字符串中的字符是ASCII码,则显示ok。
标签: c# xml windows-phone-7 unicode big5