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

时间:2015-11-07 05:57:27

标签: c# encoding win-universal-app uwp

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

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

Encoding.GetEncoding("windows-1254")

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

  

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

我不知道如何使用 Encoding.RegisterProvider 方法让任何想法成功?

1 个答案:

答案 0 :(得分:29)

我们需要使用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类库提供了一个静态属性,   P:System.Text.CodePagesEncodingProvider.Instance,返回一个   EncodingProvider对象,使完整的编码集可用   在.NET Core可用的桌面.NET Framework类库中   应用

MSDN论坛中的相关主题:Encoding.RegisterProvider -- How to use?