Windows Phone 8 SDK WebClient编码问题 [英] Windows Phone 8 SDK WebClient Encoding Issue

查看:60
本文介绍了Windows Phone 8 SDK WebClient编码问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Windows-1254字符集从站点解析html.但所有土耳其语字符显示如下:

I'm trying to parse html from a site using windows-1254 charset. but all Turkish characters shown like this: � � � � �

实际问题出在哪里?我确实尝试过这些:

Where is the actual problem? I did try these:

webClient.Encoding = System.Text.Encoding.UTF8
webClient.Encoding = System.Text.Encoding.GetString("UTF-8");

功能如下:

public string ReplaceText(string _text)
        {
            _text = _text.Replace("Ä°", "İ").Replace("ı", "ı").Replace("ü", "ü").Replace("ÅŸ", "ş").Replace("Å", "Ş").Replace("ç", "ç").Replace("ö", "ö").Replace("ÄŸ", "ğ").Replace("Ç", "Ç").Replace("Ö", "Ö").Replace("Ãœ", "Ü");
            return _text;
        }

此标头:

webClient.Headers["User-Agent"] = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
webClient.Headers["Accept-Charset"] = "windows-1254,utf-8;q=0.7,*;q=0.7";

(也有iso-8859-9和utf8)

(with iso-8859-9, utf8 too)

这就是我使用网络客户端的方式:

and this is how i am using the webclient:

WebClient wb = new WebClient();         
            wb.Headers["User-Agent"] = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
            wb.Headers["Accept-Charset"] = "windows-1254,utf-8;q=0.7,*;q=0.7";
            wb.DownloadStringAsync(new Uri("http://www.site.com"));
            wb.Encoding = System.Text.Encoding.UTF8;
            wb.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DSC);

处理程序:

HtmlDocument htmlDoc = new HtmlDocument();

            htmlDoc.LoadHtml(e.Result);

            var inputs = htmlDoc.DocumentNode.SelectNodes("//div[@id=\"mrln-eyhaber\"]//a");

            foreach (var input in inputs)
            {

                textarea.Text += this.ReplaceText(input.Attributes["title"].Value.ToString()) + "\n\n";
            }

推荐答案

为什么不使用标准方法,而是为什么创建一个特定于您的需求的自定义类,该类将处理蚀刻操作.

Instead of using standard approach, why don you create a custom class, specific for your needs, which will handle the etconding.

将帮助您生成类,就像这样:

This will help you generate the class, like so:

然后您要做的所有事情

webClient.Encoding = CustomEncoding();

让我知道怎么回事(:

这篇关于Windows Phone 8 SDK WebClient编码问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆