2015年9月14日月曜日

Win10 UWP App で GetEncoding("shift-jis") を使う

Win10 UWP でGetEncoding("Shift-JIS")が使えない件、このblogの5月の記事でも触れていたのですが、Connectで質問していたところ「そういう仕様だから」という解答を得ました。


[Win10 UWP, VS2015RC] System.Text.Encoding.GetEncoding raise exception
https://connect.microsoft.com/VisualStudio/feedback/details/1496110/win10-uwp-vs2015rc-system-text-encoding-getencoding-raise-exception

UWP Appが依って立つ所の.NET CoreからShift-JIS等のEncodingProviderは外しちゃったので、必要な人は別途System.Text.Encoding.CodePages を追加すれ、との事です。

以下簡単な使い方です。

1. System.Text.Encoding.CodePagesのインストール


ツール → NuGet パッケージマネージャ → ソリューションのNuGet パッケージを管理 をクリックしてNuGet パッケージマネージャを開き、"System.Text.Encoding.CodePages"を検索してインストール。

NuGet コンソールから入れたい人はそちらで。

System.Text.Encoding.CodePages
https://www.nuget.org/packages/System.Text.Encoding.CodePages/



NuGet パッケージマネージャ

2. CodePagesEncodingProvider を登録



…上の二行、毎回要る訳ではなく…というか、アプリケーションのどこぞで一回呼べば済むようです。
自分の所では、App.xaml.csのコンストラクタで一発呼ぶと以降どこでも…参照してるライブラリでも…動いてるのでそうしています。
(このあたり良くわからない)

※今まではPortable.Text.Encoding のお世話になっていました。こちらでも困ることは全く無かったです。感謝。

Portable.Text.Encoding
https://www.nuget.org/packages/Portable.Text.Encoding/




0 件のコメント:

コメントを投稿