web-dev-qa-db-ja.com

.NET Coreは、Windows 1252の修正方法を知りませんか?

このプログラムは、.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
53
Joshua

これを行うには、 registerCodePagesEncodingProviderSystem.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);

または、1つのコードページのみが必要な場合は、登録せずに直接取得できます。

var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252);
99
svick

書いてください:

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

csprojで。

パッケージコンソールに「dotnet restore」と書き込み、アセンブリを復元します。

サンプル用にこのコードを書いてください:

public class MyClass
{
    static MyClass()
    {
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    }
}
7
user6845177