在微软文档https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding中,在编码列表部分的编码表中,gb2312行的.NET Framework支持列中有一个标记,这意味着.NET Framework本地支持gb2312编码。但是当我调用时,……
在我的程序中,在Win11机器和另一台Windows Server 2008机器上,出现了异常,并显示以下消息:
System.Text.Encoding.GetEncoding("gb2312")
在我的程序中,在Win11机器和另一台Windows Server 2008机器上,出现了异常,并显示以下消息:
'GB2312' is not a supported encoding name
但是在我使用的Windows10电脑中构建程序时,它可以正确识别gb2312编码。
我的程序是使用.NET Framework 4.6.2构建的,因此我认为gb2312受到本地支持,那么问题出在哪里呢?
我进行了一些搜索,建议
Encoding.RegisterProvider(new CodePagesEncodingProvider())
但这是.NET Core的解决方案。我认为它没有解决根本原因,也不是.NET Framework的好修复方法。
更新:调用GetEncoding的代码位于一个dll内部。