В рамках перехода моего расширения Thunderbird на Thunderbird 60 мне нужно переключиться с использования nsIScriptableUnicodeConverter (если вы не знаете Mozilla, неважно, что это) на более популярный и поддерживаемый несколькими браузерами, TextDecoder иTextEncoder.Дело в том, что их поведение не соответствует ожиданиям.
В частности, предположим, что у меня есть строка str
, содержащая "ùìåí" (без кавычек, конечно).Теперь, когда я запускаю:
undecoded_str = new TextEncoder("windows-1252").encode(str);
Я ожидаю получить последовательность
F9, EC, E5, ED, 2C
(1-октетное значение windows-1252 для каждого из 5 символов).Но то, что я на самом деле получаю, это:
C3, B9, C3, AC, C3, A5, C3, AD, 2C
, что похоже на кодировку строки в UTF-8.Почему это происходит?