Чтение кодировки Windows-1252 в Windows Phone 8

В Windows я могу использовать Encoding.GetEncoding ("Windows-1252") через.NET, чтобы получить кодировку кодовой страницы "Windows-1252". К сожалению, этот вызов вызывает исключение ArgumentExtception в эмуляторе Windows Phone 8, указывая, что имя кодировки недопустимо. Я осмотрел MSDN, но не нашел ничего полезного. Кто-нибудь знает о том, какие кодировки доступны в Windows Phone 8 и какое новое название кодировки "Windows-1252"?

И да, мне известен альтернативный вариант использования кодировки "iso-8859-1" и ручной замены символов в диапазоне 129–159. Но я пытаюсь избежать этого, если это возможно.

Большое спасибо, Майкл

3 ответа

Я не уверен, что это все еще работает, но помните, что это было полезно. Этот инструмент генерирует исходный код для однобайтовых кодовых страниц

http://www.hardcodet.net/2010/03/silverlight-text-encoding-class-generator

Я надеюсь, что сгенерированный источник работает в подмножестве Windows Phone библиотеки базовых классов.

Как ясно сказано в сообщении об исключении, подмножество фреймворка в Windows Phone не поддерживает Windows-1252. Как вы говорите, использование Latin-1 (ISO-8859-1) - это способ сделать это.

В качестве альтернативы вы можете реализовать кодировку вручную, что я бы не рекомендовал.

Как насчет попробовать MultiByteToWideChar(Win32 API)?

Пример кода здесь.

http://bluewatersoft.cocolog-nifty.com/blog/2012/12/windows-phone-8.html

http://code.msdn.microsoft.com/wpapps/Windows-Phone-8-Shift-JIS-7ecd59fe/sourcecode?fileId=72228&pathId=1378915520

Это образец для CP-932(Shift JIS). Создайте новый проект "Компонент времени выполнения Windows Phone"(C++), затем скопируйте код. Измените константу "CP_SJIS" для вас, пожалуйста.

Кроме того, я не знаю, эффективен ли CP-1252(Windows-1252) на WP8.

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