Преобразование кодировки Windows-1252 в UTF-8 в Silverlight

В моем приложении Silverlight я получаю файл XML, закодированный с помощью windows-1252. Теперь моя проблема не будет отображаться правильно, пока строка windows-1252 не будет преобразована в строку UTF8. В обычной среде C# это не было бы большой проблемой: там я мог бы сделать что-то вроде этого:

Encoding wind1252 = Encoding.GetEncoding(1252);
Encoding utf8 = Encoding.UTF8;
byte[] wind1252Bytes = ReadFile(Server.MapPath(HtmlFile));
byte[] utf8Bytes = Encoding.Convert(wind1252, utf8, wind1252Bytes);
string utf8String = Encoding.UTF8.GetString(utf8Bytes);

(Преобразовать кодировку символов строки из windows-1252 в utf-8)

Но Silverlight не поддерживает Windows-1252 - это только юникод.

PS Наткнулся на "Кодировку для Silverlight" http://encoding4silverlight.codeplex.com/ - но похоже там тоже нет поддержки windows-1252?

РЕДАКТИРОВАТЬ: я решил свою проблему на "серверной стороне" - фактическая проблема все еще остается открытой.


person frugi    schedule 17.09.2013    source источник


Ответы (1)


Encoding for Silverlight — это сторонняя система кодирования, но сейчас она поддерживает только все DBCS (Double-Byte Character Set). Однако windows-1252 — это SBCS (Single-Byte Character Set).

Но можно написать кодировщик/декодер для Encoding for Silverlight, Думаю будет очень легко.

person Aimeast    schedule 24.11.2013