在C# Core中,如果我们要获取某个编码,比如用下面这个代码:
Encoding e1 = Encoding.GetEncoding(“gb2312”);
会弹出找不到该编码的异常报错。
这时候可以按照下面的步骤解决:
1.在【项目】中找到【管理Nuget程序包】中找到【System.Text.Encoding.CodePages】这个包,然后安装。
2.在对应的C#方法中添加下面的语句,注册刚刚安装的包里面的编码提供者,然后就可以运行了。
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
完整代码如下:
using System;
using System.Text;namespace ConsoleApp1
{
class Program
{static void Main(string[] args)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);Encoding e1 = Encoding.GetEncoding(“gb2312”);
//将字符串用默认的编码格式编码成字节数组
byte[] arr = e1.GetBytes(“Abs”);
//将字节数组解码按照指定的编码格式解码成字符串
string r1 = e1.GetString(arr);
Console.Write(r1);
}
}
}
PS:这一现象只存在于.NET Core中,.NET 中不需要这样。
发表评论