Encoding.GetEncoding не может работать в приложении UWP

Мне нужно закодировать некоторые текстовые файлы для собственных символов.

В моем приложении Windows 8.1 Store я мог бы обычно использовать метод Encoding.GetEncoding():

Encoding.GetEncoding("windows-1254")

Но в приложении UWP я получил это исключение:

Дополнительная информация: "windows-1254" не поддерживает имя кодировки. Информацию об определении настраиваемой кодировки см. В документации по методу Encoding.RegisterProvider.

Я не знаю, как заставить его работать с помощью метода Encoding.RegisterProvider, любых идей?

Ответ 1

Нам нужно использовать CodePagesEncodingProvider для регистрации расширенных кодировок, включенных в этот конкретный провайдер. См. CodePagesEncodingProvider Класс

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

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

Библиотека классов .NET Framework предоставляет одно статическое свойство, P: System.Text.CodePagesEncodingProvider.Instance, который возвращает Объект EncodingProvider, который обеспечивает полный набор кодировок на настольной библиотеке классов .NET Framework, доступной для .NET Core приложения.

Связанный поток в форуме MSDN: Encoding.RegisterProvider - Как использовать?