Webkit вдруг начинает обслуживать скрипты с другой кодировкой? - PullRequest
0 голосов
/ 27 июня 2018

Итак, на прошлой неделе одно из наших приложений начало отображать странную ошибку: знаки отображаются как знаки €. Немного покопавшись, я заметил, что это происходит с каждой отображаемой ценой, которая проходит через функцию форматирования. Поэтому проверка исходного кода в devtools показала, почему мы видим другого персонажа:

  return "€ " + x1 + ",-"

Итак, похоже, что сценарий обслуживается с другой кодировкой, чем UTF-8. Исходный код четко показывает знак евро в этой строке, но вкладка исходного кода в Chrome devtools говорит иначе.

Я тестировал его в нескольких браузерах, где Firefox, IE 11 и Edge правильно показывали знак евро. Опера не сделала, так что похоже, что это проблема Webkit?

Если я полностью обновляю страницу в Chrome (Ctrl + Shift + R), все выглядит хорошо, и все знаки евро отображаются правильно.

В этом вопросе говорится, что символ € отображается, поскольку для рендеринга используется ISO-8859-1 (без знака евро). Возможно ли, чтобы Webkit просто выбрал другую кодировку для разбора файлов JavaScript с UTF-8?

1 Ответ

0 голосов
/ 28 июня 2018

Комментарий Джакомо Катенацци, приведенный выше, указал мне правильное направление. Приложение размещено на серверной части Java, и поэтому имеет страницу login.html и app.html, которую серверная часть Java выполняет как index. Я знал, что app.html имеет <meta charset="utf-8"> тег в <head>, но комментарий вдохновил меня проверить login.html, и я заметил, что пропустил метатег .

login.html загружает файл сценария приложения. Поэтому, когда пользователь входит в систему, Chrome выбирает файл сценария на странице входа в систему без определенной кодировки, а когда пользователь переходит на страницу приложения, файл сценария (с неправильной кодировкой) подается из кэша. Это объясняет, почему обновление исправило все (сценарии получают заново с сервера), а также объясняет, почему это произошло «внезапно». Страница входа была недавно изменена для загрузки файла сценариев.

TLDR; убедитесь, что каждый файл HTML, который выбирает сценарии, имеет <meta charset="utf-8"> в <head>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...