Monday, May 30, 2016

Перфекционизм или боремся за кодировку windows 1251 на Windows Phone

Есть у меня такая черта - люблю доводить то состояния, чтобы "работало". При этом явно злоупотребляя тратой времени, что ставит под бАльшой вопрос экономическую составляющую трудозатрат.

И вот Жизнь подкинула подобную задачу - интеграция форума ЯрПортал.ру в МобиРепу. На удивление, всё прошло относительно гладко, изменений в МобиРепе потребовалось немного, скорее универсальные фиксы (для всех форумов). Пока запустил тест под ВиндовсФон. Апс.. и не работает. А с костромским jediru - работает... Странновато. И начал искать.

Нашел - на ярпортале используется редирект, флеш и iframe. Всё это вводило WebView в когнитивный диссонанс. Но это довольно быстро пофиксилось путём экранирования соответствующих тэгов. Нет тэгов - нет проблемы.

Но проблема осталась - кодировка. ЯрПортал использует windows-1251. И это стало камнем преткновения для приложения под Windows Phone. Стал искать решения - большинство решений предполагало изменение и серверной части. Но это не в моей власти.

Однако поиски не оказались напрасными. Всё решилось путём добавление следующей строчки в вызов ajax запроса

xhr.overrideMimeType("text/html; charset=windows-1251");

Заработало! Осталось только оформить в виде условного вызова в конкретных случаях (форум с подобной кодировкой или другой не UTF-8 и Windows Phone/Windows 10 Mobile).

Всем благ! И здоровья!

No comments: