C# Create(新StringReader)是否提供读取非unicode(BIG5)的功能?

C# Create(新StringReader)是否提供读取非unicode(BIG5)的功能?,c#,xml,windows-phone-7,unicode,big5,C#,Xml,Windows Phone 7,Unicode,Big5,我正在尝试访问一个有BIG5编码段落的网页。检索xml数据后,我使用XMLRead.Create(newStringReader(xmldata))并从XmlNodeType.Text类型的reader.Value中获取big5字符。在WP运行时,它不支持BIG5编码,所以我必须获取每个字节并转换为unicode以在WP7上显示。然而,我从reader.Value获得的字节似乎不是我所期望的。例如,第一个汉字是B5E1。但我得了FD。怎么了 using (XmlReader reader = X

我正在尝试访问一个有BIG5编码段落的网页。检索xml数据后,我使用XMLRead.Create(newStringReader(xmldata))并从XmlNodeType.Text类型的reader.Value中获取big5字符。在WP运行时,它不支持BIG5编码,所以我必须获取每个字节并转换为unicode以在WP7上显示。然而,我从reader.Value获得的字节似乎不是我所期望的。例如,第一个汉字是B5E1。但我得了FD。怎么了

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  
要加载的网页为

我正在使用VS2010进行WP7开发工作


感谢您的帮助

Windows Phone SDK不支持BIG5编码,但如果需要,只需使用生成编码类即可。

编码定义字节流如何转换为.Net字符串。由于无法应用BIG5编码,.Net将选择默认编码或XML文件中给定的编码

结果是,在解析XmlReader时,转换字节=>字符串已经发生,并且foreach(字符串中的字节)迭代错误转换字符串的.Net表示形式


我没有使用过API的这些部分,但似乎是用来检索XML节点后面的原始字节流的部分。

因为big5是一个双字节字符集,所以每次需要两个字节才能获得正确的字符。根据您的示例,看起来您只读取了一个字节。谢谢。我试图获取第一个字节,以查看前导字节是否在范围内。但是值不是B5或E1。我想“String s=reader.value;”,s已经被修改了。所以我读出的字节是错误的。如果字符串中的字符是ASCII码,则显示ok。链接不错,但不幸的是,该工具似乎不支持双字节字符集,因此无法创建big5编码类。感谢您的回答。我试过这个工具,发现它不支持2字节编码。嗨,谢谢。您提到的方法(CanReadBinaryContent)在WP包中不受支持。试图添加该system.xml.dll的引用,但出现错误。