.net 5 C# 网页gbk编码问题的一种解决方案
这两天在鼓捣网页解析的时候,遇到了一个用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编码问题的一种解决方案相关推荐
- python抓取gb2312/gbk编码网页乱码问题
做了个网络爬虫抓取网页,但如果网页是gbk/gb2312编码,则会出现乱码问题,如下: 取得文字后,直接打印,输出结果str如下:¹óÖÝÈËÊ¿¼ÊÔÐÅÏ¢Íø_¹óÖÝÈËÊ¿¼ÊÔÍø_¹ ...
- 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...
问题:我用dom将数据写到xml中 设置xml文件的编码格式是gbk时再dos下运行jar包中文会出现乱码 如下: 代码如下: StringWriter strWtr = new StringWrit ...
- CentOS下Apache环境支持GBK编码解决网页乱码问题
为什么80%的码农都做不了架构师?>>> 问题描述 在CentOS系统中采用Apache服务器安装GBK编码的程序出现乱码,这主要是因为默认安装的Apache服务器字符编码为U ...
- iOS编码:如何创建gbk编码
原文摘自:http://www.cnblogs.com/kiao295338444/articles/2590031.html 我们知道,使用NSURLConnection的代理方法下载网页,存到一个 ...
- c++ uint32转为int_【转】用python将GBK编码文件转为UTF-8编码文件
学习资料: 字符集与字符编码 - 网易云课堂study.163.com 有的时候我们有一些网页的项目,需要用到JavaScript读取一些文本文件,用以读取数据:但各种文本文件的编码方式不尽相同,特 ...
- PHP5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了! 当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,h ...
- php htmlspecialchars 不管用,php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总_php技巧...
从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,ht ...
- php 读取或导出到Excel / CSV (附utf8、gbk 编码转换)
链接:CSV 导入mysql 数据库 php导入到excel-支持utf8和gbk两种编码 php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了 utf-8 ...
- java基础系列(四)UTF-8和GBK编码的区别
GBK编码:是指中国的中文字符,其实它包含了简体中文与繁体中文字符,另外还有一种字符 "gb2312",这种字符仅能存储简体中文字符. UTF-8编码:它是一种全国家通过的一种编码 ...
最新文章
- Activity的LaunchMode
- 服务器客户端回射程序-自己设计包的结构
- 自动利用webshell执行系统命令py脚本
- getcwd函数_PHP getcwd()函数与示例
- FireEye:2012年下半年高级威胁分析报告
- [记录] --- linux上项目
- 不同类型的变量与零值比较的方法
- 小米全系865旗舰大降价,买就完事了!
- HDAO 全新项目落地,带动区块链新一轮牛市
- 无法打开源文件“QtWidgets/QMainWindow“的问题
- ​巴比特发布2020年数据报告:平台年度阅读量突破16亿,活跃作者超500名
- 华为防火墙L2TP/L2TP over IPSec
- 初中级程序员进阶高级程序员,必须要了解的设计模式(45种设计模式)
- 鸿蒙和宙斯谁厉害,对抗达克赛德第一次入侵的旧神联盟去哪了
- tplink wr886n v2 硬改
- CGAL官方软件包-算数和代数 1. Algebraic Foundations
- 使用nodeJS写一个简单的小爬虫
- Linux技巧(二):Linux sort命令深入解析 | sort -k M.m,N.n 命令详解
- catv系统主要有哪三部分组成_CATV系统组成包括( )_学小易找答案
- 华为手机显示内存4g加64g是什么意思
热门文章
- 2021地理设计组一等奖:融合短视频和深度学习的城市空间意象解构与分析
- JVM-类加载器 详解(手画多图)面试常问 绝对值得阅读!!!
- 使用SSH服务管理远程主机
- Windows系统的电脑网卡,生产日期等信息查询
- 步进电机五根线怎么接_热电阻三根线怎么接 浅谈热电阻识别方法
- OJ c语言第一次实验
- linux 数位板内核,Ubuntu 下友基数位板驱动和配置
- 做站群前期的准备工作
- 彻底解决共享打印机时报错误代码0x0000011b或0x00000709或0x000006d9提示错误系统Win10/Win8/Win7/XP等
- ListView案例集锦