Кодировка UserJS для Opera
Подключил скрипт к Опере
function fLoad() { alert("Работает!"); return true; } function fUnLoad() { alert("Не-Работает!"); return true; } onload=fLoad; onunload=fUnLoad Если файл сохранять в UTF-8 или UTF-16, то работает, если сохранять в Win-1251 или KOI-8U, то перестаёт работать. Я рассчитывал, что будут кроказябры в окне Алерта. 1 - Почему не работает если использована другая кодировка? 2 - Где/как определяется кодировка подключаемого скрипта? 2.1 - или какая она д.б. и как Опера различает UTF-8/16? Спасибо |
Дефолтная кодировка для скриптов - UTF-8. Именно как UTF-8 интерпретируется содержимое скрипта. Если оно не соответствует этой кодировке и содержит не-латинские символы, получятся кракозябры, хотя скрипт работать должен вроде. Для подключаемых на страницу скриптов кодировку можно указать либо в серверных заголовках к файлу, либо в атрибуте charset тега script. Для юзерскрипта наверно никак не указать. Да и нафига.
|
"на фига" оно не важно. Просто хочу разобраться как Опера работает. Вот почему она различает UTF-8 и UTF-16?
|
Дружок, ты хотя бы минимальные усилия приложил для понимания этого.
http://ru.wikipedia.org/wiki/UTF-16 Цитата:
|
Спасибо. Про BOM я знаю, но не ожидал использования в данном случае - отказ от прямого указания кодировки делает систему менее гибкой.
|
BOM позволяет однозначно определить кодировку. Что в этом плохого?
|
Плохо только то, что BOM не позволяет определять не-Юникод :)
|
Ну логично. Ибо не-юникод - это однобайтовые кодировки, и в них не нужны никакие Byte Order Mark
|
Часовой пояс GMT +3, время: 23:26. |