.NET Core中使用编码GB2312报错:‘GB2312‘ is not a supported encoding name 的解决方案


#事故现场

在.Net Core中使用XElement解析GB2312编码的xml文件,
代码如下:

string xmlp = "G:\\test\\content.xml";
XElement xe = XElement.Load(xmlp);
var tittle = xe.Element("TITLE").Value.Trim();
var author = xe.Element("AUTHOR").Value.Trim();

报错如下:

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

#分析原因

使用代码检查支持的编码:

var encodeArr= System.Text.Encoding.GetEncodings();

发现获得的编码中没有GB2312或者GBK

#解决方案

1、在NuGet包中安装包System.Text.Encoding.CodePages
2、在使用编码方法之前,对编码进行注册( Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);),代码如下:

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
string xmlp = "G:\\test\\content.xml";
XElement xe = XElement.Load(xmlp);
var tittle = xe.Element("TITLE").Value.Trim();
var author = xe.Element("AUTHOR").Value.Trim();

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值