C# エラー「System.ArgumentException: shift_jis is not a supported encoding name」が発生した場合の対処法
C#で、エラー「System.ArgumentException: shift_jis is not a supported encoding name」が発生した場合の対処法を記述してます。
環境
- OS windows10 pro 64bit
- .net core 3.1
- Microsoft Visual Studio Community 2019 Version 16.7.1
エラー全文
以下のコードで発生
Encoding.GetEncoding("shift_jis")
エラー全文
System.ArgumentException: 'shift_jis' is not a supported encoding name. For information on defining a custom encoding, s
ee the documentation for the Encoding.RegisterProvider method. (Parameter 'name')
at System.Text.EncodingTable.InternalGetCodePageFromName(String name)
at System.Text.EncodingTable.GetCodePageFromName(String name)
at System.Text.Encoding.GetEncoding(String name)
at testapp.Program.Main(String[] args) in C:\Users\testuser\Program.cs:line 23
原因
.NET Coreの場合は、「shift_jis」は「System.Text.Encoding.CodePages」を使用する必要がある
対処法
「System.Text.Encoding.CodePages」を「nuget」で入手する
Install-Package System.Text.Encoding.CodePages
あとは「Encoding.GetEncoding(“shift_jis”)」の前に、以下のコードを追加します。
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
-
前の記事
Ruby 文字列をインクリメントする 2021.09.16
-
次の記事
nextcloud 右クリックが使用できるRight clickを追加する 2021.09.16
コメントを書く