Это сбивает с толку меня, и я пытаюсь понять причину, почему.По какой-то причине, когда JavaScript встроен в файл HTML5, он использует UTF-8.Однако, если я ссылаюсь на внешний HTML5, он больше не использует UTF-8.Вот что я обнаружил:
У меня есть файл index.html, который использует <!DOCTYPE html>
.По умолчанию, поскольку это HTML 5, по умолчанию используется UTF-8.
- РАБОТАЕТ: Если в моем внутреннем коде Javascript есть символы Юникода, тогда мои символы Юникода отображаются нормально.
- РАБОТАЕТ: Если у меня есть специальные символы Юникода в документе index.html, и я ссылаюсь на внешний файл JavaScript, также содержащий символы Юникода, символы Юникода отображаются нормально.
- НЕ РАБОТАЕТ: Если у меня нет специальногосимволы Unicode в документе index.html и ссылка на внешний файл JavaScript, содержащий символы Unicode, символы Unicode не отображаются должным образом.Вместо этого они появляются как некоторые другие загадочные символы.
Итак, почему # 2 работает выше, а не # 3?Я могу заставить работать # 3, добавив <meta charset="utf-8"/>
в начало файла index.html.Тем не менее, я не совсем понимаю, зачем мне эта строка, если предполагается, что она должна по умолчанию использовать UTF-8
Если причина в том, что UTF-8 по умолчанию применяется только к этому файлу, а не к внешним файлам, то почему он работает для # 2?
PS.Я попытался создать эти файлы как в TextEdit, так и в Xcode (в MacOS).В Xcode, по крайней мере, кодировка символов по умолчанию действительно установлена в UTF-8.