解决 .net Core 3.1中使用GB2312编码异常

在.net core使用GB2312时抛出以下异常
System.ArgumentException:“'gb2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. 

解决方法
在NuGet 添加“System.Text.Encoding.CodePages”
在代码中还需要添加Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
核心代码如下
static void Main(string[] args)
{
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    byte[] bytes = Encoding.GetEncoding("gb2312").GetBytes("罗分明 www.luofenming.com");
    string s = Encoding.GetEncoding("GB2312").GetString(bytes);
    Console.WriteLine("Hello World!");
}

评论

  1. 117.61.243.*2020-06-10 17:21:00
    省去了很多麻烦

  2. 117.61.243.*2020-06-10 17:20:33
    很好用 Encoding注册的那条语句。

  3. 117.61.243.*2020-06-10 17:20:33
    很好用 Encoding注册的那条语句。

  4. 139.226.144.*2020-03-27 01:10:21
    原来如此,问题解决了。感谢