如何让.NET Core支持GB2312和GBK
在.NET Core中,默认是不支持GB2312和GBK编码的。
例如我们如果新建一个.NET Core控制台项目,然后在其Main方法中使用如下代码:
using System;
using System.Text; namespace NetCoreCoding
{
class Program
{
static void Main(string[] args)
{
string textToEncode = "今天是个好天气"; byte[] byteData = Encoding.GetEncoding("gb2312").GetBytes(textToEncode); Console.WriteLine("Press key to end...");
Console.ReadKey();
}
}
}
运行到Encoding.GetEncoding("gb2312")时,会出现异常:

异常信息如下:
'gb2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
所以在.NET Core中如果我们要使用GB2312和GBK编码,需要给项目引入一个Nuget包:
System.Text.Encoding.CodePages
然后使用Encoding.RegisterProvider方法进行注册Provider,我们将.NET Core控制台项目的Main方法改为如下:
using System;
using System.Text; namespace NetCoreCoding
{
class Program
{
static void Main(string[] args)
{
string textToEncode = "今天是个好天气"; Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);//注册Nuget包System.Text.Encoding.CodePages中的编码到.NET Core
byte[] byteData = Encoding.GetEncoding("gb2312").GetBytes(textToEncode); Console.WriteLine("Press key to end...");
Console.ReadKey();
}
}
}
现在再调用Encoding.GetEncoding("gb2312")就不会抛出异常了。
如何让.NET Core支持GB2312和GBK的更多相关文章
- [转] Sublime Text 3支持GB2312和GBK编码
Sublime Text 3与Sublime Text 2的不同 其实有不少人写过如何让Sublime Text 2支持GB2312和GBK编码,例如这篇.基本原理就是先装好Package Contr ...
- 【linux学习笔记】Sublime Text3支持GB2312和GBK编码以及中文输入法
几天在ubuntu15.10下使用Sublime Text3发现中文乱码,以及不能使用中文输入法(搜狗输入法linux版)的问题,捣鼓了半天,终于完善了,下面po一下我的解决方案. 一.支持GB231 ...
- Sublime Text 3技巧:支持GB2312和GBK编码
From: http://blog.csdn.net/ubuntulover/article/details/21101979 Sublime Text 3与Sublime Text 2的不同 其实有 ...
- 【UWP】解析GB2312、GBK编码网页乱码问题
在WebHttpRequest请求网页后,获取到的中文是乱码,类似这样: <title>˹ŵ��Ϸ���������� - ��̳������ - ˹ŵ��Ϸ����</title ...
- .net core默认不支持gb2312
采集数据时,乱码,之前遇到过这个情况,于是老办法: 果断使用Encoding.GetEncoding(“GB2312”),抛异常.搜了下,是因为.net core默认不支持gb2312 所以,两个办法 ...
- 各种编码中汉字所占字节数;中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
vim settings set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936,latin1set termencoding=utf-8se ...
- 网络编码 GB2312、GBK与UTF-8的区别
GB2312.GBK与UTF-8的区别 这是一个异常经典的问题,有无数的新手站长每天都在百度这个问题,而我,作为一个“伪老手”站长,在明白这个这个问题的基础上,有必要详细的解答一下. 首先,我们要 ...
- vim 编辑器 打开GB2312、GBK文件乱码解决方法
安装好的操作系统一般都带有vim编辑器,但是默认不支持GB2312中文,打开文件出现乱码,解决办法如下. 1.打开以下文件 sudo vim /var/lib/locales/supported.d/ ...
- 中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030 cp936是微软自己发布的用在文件系统中的编码方式.而bg2312是中国国家标准.我明白mount -t vfa ...
随机推荐
- php服务器代理解决浏览器跨越问题
详见代码 <?php $url = $_SERVER["QUERY_STRING"]; switch ($_SERVER['REQUEST_METHOD']) { case ...
- 二层协议--STP协议总结
生成树协议的技术实现与配置注意点 一.stp协议的用途 二.stp协议的运行机制 三.stp协议规范
- loadrunner 运行脚本-Run-time Settings-Browser Enmulation设置详解
运行脚本-Run-time Settings-Browser Enmulation设置详解 by:授客 QQ:1033553122 浏览器模拟 所有Internet Vuser Header包含一个标 ...
- Flume组件汇总2
Component Interface Type Alias Implementation Class org.apache.flume.Channel memory org.apache.flume ...
- (网页)js最新手机号码、电话号码正则表达式
正则表达式(regular expression)是一个描述字符模式的对象.使用JavaScript正则表达式可以进行强大的模式匹配和文本检索与替换功能. 手机号码正则表达式验证. function ...
- 跨站请求伪造(CSRF)
1. 什么是跨站请求伪造(CSRF) CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者session Riding,通常缩 ...
- 洗礼灵魂,修炼python(13)--模块random,math,pickle
random 1.作用: random模块用于生成随机数 2.常用函数: random:用于生成一个0到1的随机符点数: 0 <= n < 1.0 uniform(a, b):用于生成一个 ...
- [SQLSERVER] 转移数据库MDF或LDF文件位置的方法,以及重新启动出现无权限的问题
0. 查看数据库文件名和物理文件名 SELECT name, physical_name AS current_file_location FROM sys.master_files 1. 运行命令 ...
- webAPi OData的使用
一.OData介绍 开放数据协议(Open Data Protocol,缩写OData)是一种描述如何创建和访问Restful服务的OASIS标准. 二.OData 在asp.net mvc中的用法 ...
- 使用 Array2XML把数组转成XML格式,有相同的节点
最近开发一个项目,需要调用第三方的接口,第三方提供的数据是xml,我直接使用Array2XML把php数组转成XML格式. XML格式如: <root> <body> < ...