System.Text.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.
Parameter name: name
当改用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和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环境中遇到不支持GB2312和GBK编码的问题,以及如何通过引入System.Text.Encoding.CodePages NuGet包并注册EncodingProvider来解决这个问题。添加依赖和调用Encoding.RegisterProvider方法后,可以成功使用GB2312编码进行数据处理。
1万+

被折叠的 条评论
为什么被折叠?



