106

该程序在为 .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
4

2 回答 2

205

为此,您需要从包中注册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);
于 2016-06-16T22:24:29.117 回答
14

请写出:

<ItemGroup>
    <PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
</ItemGroup>

在 csproj 中。

在包控制台中写入“dotnet restore”,恢复程序集。

并使用此代码作为示例:

public class MyClass
{
    static MyClass()
    {
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    }
}
于 2017-09-06T06:43:03.147 回答