C#在TextBlock中显示特殊字符

时间:2013-10-09 14:32:28

标签: c# windows-phone-7 windows-phone-8 windows-phone

在我的Windows Phone应用程序中,我从Internet获取RSS并解析XML。 我从rss中取出Title和Description,并将它们显示在TextBlock中。

在这里我发现一些问题,用菱形代替的特殊字符包含“?”。

      /*CONNECTION AND DOWNLOAD RSS*/ 
        WebClient wc = new WebClient();
        wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(load_web_news);
        wc.DownloadStringAsync(new Uri("http://.../rssFeedNews.asp"));
        ....
     /*SAVE RSS*/
            TextBlock tbTitle = new TextBlock();
            Run rTitle = new Run();
            rTitle.Text = rss.Title;
            Run rDescription = new Run();
            rDescription.Text = rss.Description;
            tbTitle.Inlines.Add(rTitle);
        ....
       /*PARSING*/  
    private void load_web_news(object sender, DownloadStringCompletedEventArgs e)
    {
        XElement xmlitems = XElement.Parse(e.Result);
        List<XElement> elements = xmlitems.Descendants("item").ToList();
        foreach (XElement rssItem in elements)
                {
                    RSSItem rss = new RSSItem();
                    rss.Description1 = rssItem.Element("description").Value;
                    String title = rssItem.Element("title").Value;

如何在WIndows手机应用程序中显示特殊字符,例如“à”“è”“°”等...

1 个答案:

答案 0 :(得分:2)

WebClient可能没有使用正确的编码来下载你的RSS源,尝试将Encoding属性设置为正确的(也许是Unicode?):

wc.Encoding = System.Text.Encoding.Unicode;

或者如果您知道使用了哪种特定编码:

wc.Encoding = System.Text.Encoding.GetEncoding("encoding name here") ;