C#在网页上设置charset

时间:2012-01-14 03:28:00

标签: c# parsing character-encoding

我需要在GUI App中设置charset。

应用程序获取解析网页的结果并在TextBox中显示结果;

网页字符集 - Windows-1251。

我的显示器显示黑色菱形。

THX!

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;
using System.Net;

namespace WindowsFormsApplication1{
public partial class Form1 : Form{
    public Form1(){
        InitializeComponent();
    }
    private void get_field_Click(object sender, EventArgs e){
        string url = url_field.Text;
        string pattern = pattern_field.Text;
        string html = string.Empty;

        HttpWebRequest  myHttpWebRequest  = (HttpWebRequest)HttpWebRequest.Create(url);
        HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
        StreamReader result = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
        html = result.ReadToEnd();

        MatchCollection matches = Regex.Matches(html, pattern);

        foreach(Match title in matches){
            GroupCollection group = title.Groups;
            result_field.Text += group[1].ToString() + "\n\n\n";
        }
    }
}

2 个答案:

答案 0 :(得分:0)

在Windows窗体上,使用富文本框。

答案 1 :(得分:0)

没有足够的信息(AFAICT)来明确地确定什么是“真正的问题”,但是如果有用的话,文化信息是基于每个线程存储的,你可以找到当前使用的代码页使用System.Threading.Thread.CurrentThread.CurrentUICulture.TextInfo的线程 - 请参阅http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.textinfo.aspx。如果需要,您可以将CurrentUICulture设置为其他内容。

但是,知道未能显示的确切字符会更有帮助。 :)根据我的经验,只要我安装了正确的字体,所有utf8字符串都显示正常(虽然我不记得是否意味着将语言包安装到Windows中)