web-dev-qa-db-ja.com

Encoding.GetEncodingがUWPアプリで機能しない

一部のテキストファイルをネイティブ文字用にエンコードする必要があります。

私のWindows 8.1ストアアプリでは、通常Encoding.GetEncoding()メソッドを使用できます。

Encoding.GetEncoding("windows-1254")

しかし、UWPアプリでは、次の例外が発生しました。

追加情報:「windows-1254」はサポートされているエンコーディング名ではありません。カスタムエンコーディングの定義については、Encoding.RegisterProviderメソッドのドキュメントを参照してください。

Encoding.RegisterProviderメソッドを使用して機能させる方法がわかりません。

18
user3977385

特定のプロバイダーに含まれる拡張エンコーディングを登録するには、CodePagesEncodingProviderを使用する必要があります。 CodePagesEncodingProvider クラスを参照してください

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Encoding.GetEncoding("windows-1254");

参照 https://msdn.Microsoft.com/en-us/library/system.text.encodingprovider(v = vs.110).aspx

.NET Frameworkクラスライブラリは、1つの静的プロパティ P:System.Text.CodePagesEncodingProvider.Instance を提供します。これは、 .NET Coreアプリケーションで利用可能なデスクトップ.N​​ET Frameworkクラスライブラリで利用可能なエンコーディング。

MSDNフォーラムの関連スレッド: Encoding.RegisterProvider-使用方法

37