.NET Coreは、デフォルトでは UTF8しか扱えません。
System.Text.Encoding.GetEncoding("shift-jis")
を実行すると、例外が発生します。
今回は、.NET Coreでも、Shift-JIS / ISO-2022-jpなどの文字セットを扱う方法を紹介します。
スポンサーリンク
環境
Visual Studio Community for Mac
.NET Core 2.1, 3.0, .NET (5.0)
手順
nuget パッケージを追加
nuget パッケージより、System.Text.Encoding.CodePages
を追加します。
パッケージ追加の画面で、検索窓に「System.Text.Encoding.CodePages」と入力すると、インストールパッケージが出てきます。
プロバイダを登録するコードを追加
処理の先頭に、以下のコードを追加します。
System.Text.Encoding.RegisterProvider(CSystem.Text.CodePagesEncodingProvider.Instance);
[補足情報] unsafeメソッドを使用する場合
System.Text.Encoding
クラスの、以下の5つのメソッドは、unsafeとなっています。
使用する場合は、ビルドオプションで「unsafeコードの許可」をオンに設定する必要があります。
※許可しないとビルドエラーになります
GetByteCount
GetBytes
GetCharCount
GetChars
GetString
最後に
今回の記事に関連して、MailKitを使って ISO-2022-jp
でメールを送るサンプルを、以下の記事にまとめています。よかったら見て下さい。
0 件のコメント:
コメントを投稿