Правильная кодировка для использования в файле .js
- это любая кодировка родительской страницы. Хотя существуют методы для обслуживания JavaScript, использующие другую кодировку для страницы, включая ее, они не работают во всех браузерах.
Поэтому убедитесь, что ваша веб-страница сохраняется и обслуживается в кодировке, содержащей русские символы, а затем сохраните файл .js, используя ту же кодировку. Это будет либо:
ISO-8859-5. Однобайтовая кодировка с кириллицей в старших байтах, аналогичная кодовой странице Windows 1251. cp1251 будет кодировкой по умолчанию при сохранении в текстовом редакторе из русской установки Windows;
или UTF-8. Многобайтовая кодировка, которая содержит каждый символ. Все современные сайты должны использовать UTF-8.
(ISO-8859-1 является западноевропейским и не содержит кириллицы. Он аналогичен кодовой странице 1252, используемой по умолчанию при установке в Windows. Это бесполезно для вас.)
Итак, лучше всего сохранить как шаблон cf, так и файл js как UTF-8 и добавить <cfprocessingdirective pageencoding="utf-8">
, если CF не подхватывает его автоматически.
Если вы не можете контролировать кодировку страницы, которая включает в себя скрипт (например, потому что это третье лицо), то вы не можете напрямую использовать любые символы, не относящиеся к ASCII. Вместо этого вам придется использовать строковые литералы JavaScript:
var translation_ru= {
launchMyCalendar: '\u0417\u0430\u043f\u0443\u0441\u043a \u041c\u043e\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c'
};
при сохранении в файл это "· ÐßãáÚ ¼ÞÙ ÚÐÛÕÝÔÐàì", поэтому кодировка неверна
Похоже, вы сохранили как cp1251 (т.е. кодовую страницу по умолчанию на русском компьютере), а затем скопировали файл на западный сервер, где кодовая страница по умолчанию - cp1252.
Я также только что узнал, что мой текстовый редактор по выбору, textpad, не поддерживает Unicode.
Да, это была моя причина, по которой я тоже больше не использовал его. EmEditor (коммерческий) и Notepad ++ (с открытым исходным кодом) являются хорошей заменой.