.net core中使用GB2312编码的问题

Encoding.GetEncoding(“GBK”)的时候抛出了异常:

'GBK' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name

当改用GB2312的时候也抛出了同样的异常:

'GB2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name

从异常上来看是不支持GB2312和GBK。而且提到了需要注册EncodingProvider的方法。

CodePagesEncodingProvider定义在NuGet包“System.Text.Encoding.CodePages”之中。

所以我们就需要添加System.Text.Encoding.CodePages的依赖。然后在Project.json中添加

{
"dependencies": { "System.Text.Encoding.CodePages": "4.0.1-rc2-24027" }
}

在代码中还需要添加Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            Encoding encoding = System.Text.Encoding.GetEncoding("GB2312");
            byte[] data = encoding.GetBytes(postData);

 

更多:

.Net Core EF 使用整理合集

2012服务器在IIS部署的SLL(https)网址谷歌浏览器无法访问的问题解决

Asp.Net Core 框架源码地址

posted @ 2019-06-27 15:48  天马3798  阅读(1196)  评论(0编辑  收藏  举报