1. ホーム
  2. vb.net

[解決済み] .NET CoreがWindows 1252を認識しない、修正方法は?

2022-11-09 11:57:01

質問

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

また、1つのコードページだけが必要な場合は、登録なしで直接入手することができます。

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