C#使用HttpWebResponse解析特殊字符

时间:2013-05-23 14:23:30

标签: c# html parsing special-characters

我正在解析HTML网站以在C#客户端中使用数据。 不幸的是,我的HTTP响应正在弄乱所有特殊字符(如法语名称),并用问号“?”替换它们。 我该怎么做才能解决我的问题?

这是我的代码:

private void LoadData()
{
    String strBaseURL = @"http://here_goes_the_url.com/";
    StringBuilder sb = new StringBuilder();
    byte[] buf = new byte[8192];
    HttpWebRequest request = (HttpWebRequest)
    WebRequest.Create(strBaseURL);
    HttpWebResponse response = (HttpWebResponse)
    request.GetResponse();
    Stream resStream = response.GetResponseStream();

    string tempString = null;
    int count = 0;

    do
    {
        count = resStream.Read(buf, 0, buf.Length);
        if (count != 0)
        {
            tempString = Encoding.ASCII.GetString(buf, 0, count);
            sb.Append(tempString);
        }
    }
    while (count > 0);
    result = sb.ToString();
}

我尝试更改编码但没有结果:(

谢谢!

1 个答案:

答案 0 :(得分:1)

您必须使用除ASCII之外的其他内容。

试试这个,例如:

tempString = Encoding.UTF8.GetString(buf, 0, count); 

原因是ASCII编码仅覆盖127位字符集,而UTF8涵盖Unicode字符集中的所有字符。