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");

Ссылка 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 - Как использовать?

Другие вопросы по тегам