这两天在鼓捣网页解析的时候,遇到了一个用gbk编码的网页,发现.net5不支持gbk编码.
Microsoft文档, Encoding类的编码列表中可以看到, .net core 和 .net 5仅支持 utf-16/unicodeFFFE/utf-32/32BE/us-ascii/iso-8859-1/utf-8
文档中提到 “对于 .net core 和 .net 5及更高版本,可通过使用 System.Text.CodePagesEncodingProvider 类或从 System.Text.EncodingProvider类派生来使用其他编码.”

解决gbk的编码问题如下:

using System;
using System.Text;namespace Demo
{class Program{static void Main(string[] args){// 得先用CodePagesEncodingProvider类注册一下,然后才能使用GBK编码Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);var str = "今天不是啥好天气";// 先把 str 以 Default 编码转成 byte[], 然后才能转成其他编码var strBytes = Encoding.Default.GetBytes(str);// 定义这几个变量是为了简化输出内插字符串,更容易看明白var gbk = Encoding.GetEncoding("GBK");var gb2312 = Encoding.GetEncoding("GB2312");var utf8 = Encoding.UTF8;var def = Encoding.Default;// 把 default 编码的 byte[] 转成 gbk 的 byte[], 然后再转成gbk编码的字符串// var gbkBytes = Encoding.Convert(def, gbk, strBytes);// var gbkStr = gbk.GetString(gbkBytes); //现在这个字符串就是gbk编码了// Console.WriteLine($"gbk\t--> {gbk.GetString(Encoding.Convert(def, gbk, strBytes))}");Console.WriteLine($"gb2312\t--> {gb2312.GetString(Encoding.Convert(def, gb2312, strBytes))}");Console.WriteLine($"utf8\t--> {utf8.GetString(strBytes)}");Console.WriteLine($"default\t--> {Encoding.Default.GetString(strBytes)}");}}
}

我测试的机器是 win10+vs2019+.net5

.net 5 C# 网页gbk编码问题的一种解决方案相关推荐

  1. python抓取gb2312/gbk编码网页乱码问题

    做了个网络爬虫抓取网页,但如果网页是gbk/gb2312编码,则会出现乱码问题,如下: 取得文字后,直接打印,输出结果str如下:¹óÖÝÈËÊ¿¼ÊÔÐÅÏ¢Íø_¹óÖÝÈËÊ¿¼ÊÔÍø_¹ ...

  2. 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...

    问题:我用dom将数据写到xml中 设置xml文件的编码格式是gbk时再dos下运行jar包中文会出现乱码 如下: 代码如下: StringWriter strWtr = new StringWrit ...

  3. CentOS下Apache环境支持GBK编码解决网页乱码问题

    为什么80%的码农都做不了架构师?>>>    问题描述 在CentOS系统中采用Apache服务器安装GBK编码的程序出现乱码,这主要是因为默认安装的Apache服务器字符编码为U ...

  4. iOS编码:如何创建gbk编码

    原文摘自:http://www.cnblogs.com/kiao295338444/articles/2590031.html 我们知道,使用NSURLConnection的代理方法下载网页,存到一个 ...

  5. c++ uint32转为int_【转】用python将GBK编码文件转为UTF-8编码文件

    学习资料: 字符集与字符编码 - 网易云课堂​study.163.com 有的时候我们有一些网页的项目,需要用到JavaScript读取一些文本文件,用以读取数据:但各种文本文件的编码方式不尽相同,特 ...

  6. PHP5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总

    从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了! 当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,h ...

  7. php htmlspecialchars 不管用,php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总_php技巧...

    从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,ht ...

  8. php 读取或导出到Excel / CSV (附utf8、gbk 编码转换)

    链接:CSV 导入mysql 数据库 php导入到excel-支持utf8和gbk两种编码 php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了 utf-8 ...

  9. java基础系列(四)UTF-8和GBK编码的区别

    GBK编码:是指中国的中文字符,其实它包含了简体中文与繁体中文字符,另外还有一种字符 "gb2312",这种字符仅能存储简体中文字符. UTF-8编码:它是一种全国家通过的一种编码 ...

最新文章

  1. Activity的LaunchMode
  2. 服务器客户端回射程序-自己设计包的结构
  3. 自动利用webshell执行系统命令py脚本
  4. getcwd函数_PHP getcwd()函数与示例
  5. FireEye:2012年下半年高级威胁分析报告
  6. [记录] --- linux上项目
  7. 不同类型的变量与零值比较的方法
  8. 小米全系865旗舰大降价,买就完事了!
  9. HDAO 全新项目落地,带动区块链新一轮牛市
  10. 无法打开源文件“QtWidgets/QMainWindow“的问题
  11. ​巴比特发布2020年数据报告:平台年度阅读量突破16亿,活跃作者超500名
  12. 华为防火墙L2TP/L2TP over IPSec
  13. 初中级程序员进阶高级程序员,必须要了解的设计模式(45种设计模式)
  14. 鸿蒙和宙斯谁厉害,对抗达克赛德第一次入侵的旧神联盟去哪了
  15. tplink wr886n v2 硬改
  16. CGAL官方软件包-算数和代数 1. Algebraic Foundations
  17. 使用nodeJS写一个简单的小爬虫
  18. Linux技巧(二):Linux sort命令深入解析 | sort -k M.m,N.n 命令详解
  19. catv系统主要有哪三部分组成_CATV系统组成包括( )_学小易找答案
  20. 华为手机显示内存4g加64g是什么意思

热门文章

  1. 2021地理设计组一等奖:融合短视频和深度学习的城市空间意象解构与分析
  2. JVM-类加载器 详解(手画多图)面试常问 绝对值得阅读!!!
  3. 使用SSH服务管理远程主机
  4. Windows系统的电脑网卡,生产日期等信息查询
  5. 步进电机五根线怎么接_热电阻三根线怎么接 浅谈热电阻识别方法
  6. OJ c语言第一次实验
  7. linux 数位板内核,Ubuntu 下友基数位板驱动和配置
  8. 做站群前期的准备工作
  9. 彻底解决共享打印机时报错误代码0x0000011b或0x00000709或0x000006d9提示错误系统Win10/Win8/Win7/XP等
  10. ListView案例集锦