雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

.Net Core HttpClient读取GB2312网页乱码

2024-10-12 38

.NET Core使用HttpClinet抓取网页,使用Encoding.UTF8.GetString(arr)方法获取网页内容时中文会变成乱码。

但是如果改为Encoding.GetEncoding("gb2312").GetString()方法的话会报错:'gb2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')。

解决方法是安装System.Text.Encoding.CodePages包,安装后注册provider:

EncodingProvider provider = CodePagesEncodingProvider.Instance;
Encoding.RegisterProvider(provider);

这样就正常了。

在 .NET 应用程序中,CodePages 命名空间可以用于处理各种文本文件的编码。例如,在读取一个文本文件时,你可能需要将其从 UTF-8 编码转换为 ASCII 编码,以便在另一个程序中使用。CodePages 命名空间提供了一些实用的类,例如 Encoding 和 Decoder,可帮助你进行这些操作。

另外,CodePages 命名空间还提供了一些编码器和解码器类,例如 UTF8Encoding 和 UnicodeEncoding,这些类可以帮助你在不同的编码之间进行转换,并确保你的应用程序能够正确处理各种文本数据。

更新于:1个月前
赞一波!

文章评论

评论问答