Сообщение от seregadushka
|
Прошло 32 года, но это БАГ настоящий баг Хромиума , начиная с 1 его версии.
|
Вы хотите сказать, что, к примеру, в Firefox у Вас результаты другие? У меня на последней стабильной версии Firefox аналогичные с Chrome: на вашем хостинге JS - отображаются с неправильной кодировкой (Big5), а TXT - с правильной (UTF-8).
Из личного интереса было сделано то, что Вы и советовали:
Все 3 предоставленные файла были залиты на личный хостинг. И все 3 файла отображаются с правильной кодировкой (UTF-8).
Теперь к сути проблемы:
Ваш HTTP-сервер (или настройки Amazon CloudFront - Вам виднее) отдаёт JS-файлы с заголовком "content-type" без директивы "charset", а для TXT-файла - с директивой "charset" со значением "UTF-8".
Это единственная причина, почему TXT-файл на Вашем хостинге отображается в браузере в кодировке UTF-8.
Если директива "charset" для заголовка ответа "content-type" не определена, браузер будет использовать автоопределение кодировки (а не UTF-8 по умолчанию, в чём было моё ошибочное предположение). В данном случае, и Chrome, и Firefox ошибочно определили кодировку как Big5 (можете проверить значение document.characterSet). Возможно они даже используют одну и ту же библиотеку для этого.
Причина, по которой у меня на хостинге все три файла отображаются в браузере в UTF-8:
Мой HTTP-сервер всегда по умолчанию подставляет директиву "charset" со значением "UTF-8" для заголовка ответа "content-type".
Вы можете проверить сами, открыв ваши JS-файлы по прямой ссылке и переписать значение заголовка ответа "content-type", добавив директиву "charset" со значением "UTF-8" (Chrome это позволяет):
application/javascript; charset=UTF-8
Вывод: Если не хотите, чтобы браузеры угадывали кодировки Ваших текстовых файлов, настраивайте HTTP-сервер с подстановкой директивы "charset" с нужной кодировкой по умолчанию. Браузеры здесь ни при чём.