苏飞论坛

标题: 现在chatgpt是真的利害,Httphelper我想了好久的算法一秒搞定 [打印本页]

作者: 站长苏飞    时间: 2023-6-7 14:31
标题: 现在chatgpt是真的利害,Httphelper我想了好久的算法一秒搞定
下面是我和chatgpt的对话大家可以看看,
真是越来越牛了

[C#] 纯文本查看 复制代码
# 自动识别HTML编码

## 来自你的消息:
C#语言中使用HttpWebResponse请求返回的html数据怎么自动识别编码

## 来自 ChatGPT 的消息:
在C#中使用HttpWebResponse请求返回的HTML数据时,可以通过以下步骤自动识别编码:

1. 获取HttpWebResponse对象的ContentType属性,该属性包含了返回的数据类型和编码信息;
2. 从ContentType属性中分离出编码信息;
3. 将编码信息转换成对应的编码格式;
4. 使用得到的编码格式读取返回的数据。

以下是实现自动识别编码的代码示例:

```csharp
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

string charset = null;
string contentType = response.ContentType;
if (!string.IsNullOrEmpty(contentType))
{
    int index = contentType.IndexOf("charset=");
    if (index != -1)
    {
        charset = contentType.Substring(index + 8);
    }
}

Encoding encoding = null;
if (!string.IsNullOrEmpty(charset))
{
    try
    {
        encoding = Encoding.GetEncoding(charset);
    }
    catch (ArgumentException)
    {
        encoding = null;
    }
}
if (encoding == null)
{
    encoding = Encoding.UTF8;
}

StreamReader reader = new StreamReader(response.GetResponseStream(), encoding);
string html = reader.ReadToEnd();

Console.WriteLine(html);

response.Close();
```


作者: gaomanxiang    时间: 2023-6-25 07:22
真厉害
作者: lkhjzw    时间: 2023-7-2 23:28
有没有一种可能 ,ContentType 没有返回编码怎么办?当某些网站或APP固定有一种奇葩的编码时,ContentType又不返回编码咋搞?
作者: 站长苏飞    时间: 2023-7-3 09:07
lkhjzw 发表于 2023-7-2 23:28
有没有一种可能 ,ContentType 没有返回编码怎么办?当某些网站或APP固定有一种奇葩的编码时,ContentType ...

没有的时候会取页面层的,或者使用默认的utf-8,这个自动识别不是100%的,必经不是通过字符识别的。
作者: xu0207wei    时间: 2023-7-9 13:16
看看有点厉害
作者: poisition123    时间: 2023-7-17 19:50
这个厉害了




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4