У меня есть документ HTML, хранящийся в файле с кодировкой UTF-8, и я хочу, чтобы мое расширение отображало этот файл в браузере, поэтому я вызываю loadURIWithFlags('file://' + file.path, flags, null, 'UTF-8', null);
, но он загружает его как ISO-8859-1 вместо UTF- 8. (Я могу сказать, потому что ISO-8859-1 выбран в меню «Вид»> «Символьное кодирование», а потому, что символы без разбиения пробега отображаются как Â
, за которым следует пробел. Если я переключусь на UTF-8 с помощью кодировки символов меню, то все выглядит правильно.)Почему loadURIWithFlags не использует кодировку, которую я передаю ей?
Я попытался включить в флагом и LOAD_FLAGS_CHARSET_CHANGE
, но это не оказало никакого эффекта. Я также проверил, что автоматическое обнаружение отключено, так что это тоже не проблема. Добавление <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
к документу, похоже, решило проблему, но я ожидаю, что использование аргумента 'charset' loadURIWithFlags
должно работать так же хорошо, поэтому мне интересно, не сделал ли я что-то не так в моей первоначальной попытке.
Хорошая идея! Думаю, я не понимал, что существует такая вещь, как спецификация UTF-8 - я думал, что только для кодировок, таких как UTF-16, всегда используются как минимум два байта на символ. Википедия на помощь! (Я добавил ссылку на ваш ответ.) – MatrixFrog