Encoding.GetEncoding无法在UWP应用中运行

15 c# encoding win-universal-app uwp

我需要为本机字符编码一些文本文件.

在我的Windows 8.1商店应用程序中,我可以Encoding.GetEncoding()正常使用方法:

Encoding.GetEncoding("windows-1254")
Run Code Online (Sandbox Code Playgroud)

但是在UWP应用程序中,我遇到了这个例外:

附加信息:'windows-1254'不是受支持的编码名称.有关定义自定义编码的信息,请参阅Encoding.RegisterProvider方法的文档.

我不知道如何通过使用Encoding.RegisterProvider方法,任何想法使其工作?

Fra*_*SFT 33

我们需要使用CodePagesEncodingProvider来注册该特定提供程序中包含的扩展编码.请参阅CodePagesEncodingProvider

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Encoding.GetEncoding("windows-1254");
Run Code Online (Sandbox Code Playgroud)

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

.NET Framework类库提供了一个静态属性 P:System.Text.CodePagesEncodingProvider.Instance,它返回一个EncodingProvider对象,该对象使.NET Core应用程序可以使用桌面.NET Framework类库上的完整编码集.

MSDN论坛中的相关主题:Encoding.RegisterProvider - 如何使用?

  • 当然你应该提到这只适用于在桌面上运行的UWP应用程序吗? (3认同)
  • 为了使用它,你需要这个 nuget 包:`System.Text.Encoding.CodePages`。当然,您需要以 UWP 为目标。我不确定这是否适用于所有设备,但也许不是,正如之前的评论所暗示的那样...... (2认同)