该程序在为 .NET 4 编译时可以正常工作,但在为 .NET Core 编译时不能。我了解有关不支持编码的错误,但不了解如何修复它。
Public Class Program
Public Shared Function Main(ByVal args As String()) As Integer
System.Text.Encoding.GetEncoding(1252)
End Function
End Class
该程序在为 .NET 4 编译时可以正常工作,但在为 .NET Core 编译时不能。我了解有关不支持编码的错误,但不了解如何修复它。
Public Class Program
Public Shared Function Main(ByVal args As String()) As Integer
System.Text.Encoding.GetEncoding(1252)
End Function
End Class
为此,您需要从包中注册CodePagesEncodingProvider
实例。System.Text.Encoding.CodePages
为此,请安装System.Text.Encoding.CodePages 包:
dotnet add package System.Text.Encoding.CodePages
然后(在隐式或显式运行之后dotnet restore
)您可以调用:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var enc1252 = Encoding.GetEncoding(1252);
或者,如果您只需要一个代码页,您可以直接获取它,无需注册:
var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252);
请写出:
<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
</ItemGroup>
在 csproj 中。
在包控制台中写入“dotnet restore”,恢复程序集。
并使用此代码作为示例:
public class MyClass
{
static MyClass()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
}