Подтвердить что ты не робот

Как объявить кодировку символов в INDIVIDUAL JS файле?

Мы можем объявить кодировку символов в INDIVIDUAL файле CSS по кодам ниже:

@charset "UTF-8";

Мой вопрос:

Как объявить кодировку символов в INDIVIDUAL JS файле?

Если я отправлю JS файл своему другу, я надеюсь, что он (она) может понять эту кодировку символов JS файла из самих кодов, когда он (она) начинает просматривать или редактировать этот JS файл.

Спасибо!

4b9b3361

Ответ 1

Вы не можете. Вы можете, однако, определить его в теге script, который приносит файл на страницу, используя charset. Это должно соответствовать charset, если есть, в Content-Type, с которым вы обслуживаете файл. Цитирование:

Атрибут charset дает кодировку символов внешнего ресурса script. Атрибут не должен указываться, если атрибут src отсутствует. Если атрибут установлен, его значение должно быть допустимым именем кодировки символов, должно быть ASCII без учета регистра для предпочтительное имя MIME для этой кодировки и должно соответствовать кодировке, указанной в параметре charset Content-Type метаданных внешнего файла, если таковые имеются. [IANACHARSET]

Повторите свое редактирование:

Если я отправлю JS файл своему другу, я надеюсь, что он (она) может понять эту кодировку символов JS файла из самих кодов, когда он (она) начинает браузер или редактирует этот JS файл.

Для этого вам просто нужно сказать ему/ей. Если файл находится в UTF-8 или Windows-1252 или ISO 8859-1, к сожалению, нет доступных в файле индикаторов доступной кодировки, поэтому я бы включил комментарий в начале по строкам:

// Encoding: UTF-8

Если вы используете UTF-16 или UTF-32, вы должны сообщить своему редактору, что используете BOM, которые другие редакторы должны видеть и понимать (если они являются редакторами, поддерживающими Unicode). Это обычно применимо только в том случае, если вы пишете свои комментарии в тексте (языке), требующем много многобайтовых символов, и если у вас высокое отношение комментариев к коду (поскольку код написан с использованием западного текста), хотя, конечно, вы можете использовать любую кодировку, которая вам нравится. Это просто, если отношение комментариев к коду низкое, вам, вероятно, лучше не придерживаться UTF-8, даже если комментарии находятся в тексте, требующем много четырехбайтовых символов, потому что для кода потребуется только один байт на символ, (В то время как в UTF-16 у вас может быть больше двух байтов вместо четырехбайтовых символов в комментариях, но для кода всегда требуется два байта на символ, а в UTF-32 - четыре байта на символ. файл может быть больше, хотя комментарии занимают меньше места. Но здесь я, вероятно, расскажу вам то, что вы уже знаете гораздо лучше, чем я, если я правильно догадываюсь о ваших причинах вопроса.)

Ответ 2

Нет конструкции JavaScript для объявления кодировки в самом файле, как вы можете сделать в CSS. Кодирование должно передаваться получателям при доставке данных. При отправке файлов в виде вложений электронной почты ваша программа электронной почты может включать или не включать их в заголовки Content-Type, которые указывают кодировку (но может быть затруднено выяснить, что такое кодировка).

В начале кодированного файла UTF-8 вы можете также отмечать байтов (BOM). Хотя в UTF-8 нет проблемы с порядком байтов, спецификация выступает в качестве полезного индикатора - файл, который начинается с байтов, которые составляют спецификацию в кодировке UTF-8, скорее всего, кодируется UTF-8. Вот почему программы могут вывести кодировку в отсутствие других указаний. Это, конечно, не на 100% надежное, но полезное.

Многие текстовые редакторы имеют возможность сохранять ваш файл как "UTF-8, закодированный с помощью спецификации".

(На веб-страницах спецификация когда-то считалась риском, поскольку наблюдатели рассматривали ее как символьные данные. В эти дни спецификация даже в UTF-8 полезна, а не риск.)

Ответ 3

Если вы заинтересованы в том, чтобы указать кодировку файла по-человечески, T.J. Идея Хранителя (добавление комментария к файлу типа // Encoding: UTF-8) - это просто вещь. И как Юкка К. Корпела указала, что вы также можете использовать спецификацию.

Но если вы хотите машиночитаемый способ указания кодировки, объявленной в документе, есть несколько других способов:

Например, на сервере Apache httpd вы можете использовать любое из следующих объявлений:

  • AddDefaultCharset UTF-8
  • AddCharset UTF-8 .js
  • AddType 'application/javascript; charset=UTF-8' js *

* Меня не интересует использование "application/javascript" над "text/javascript". Но если вам интересно узнать, почему один или другой может быть предпочтительнее, ср. fooobar.com/info/42847/.... Учитывая эту тему, application/javascript представляется вполне уместным (особенно если вы собираетесь использовать спецификацию, потому что это указывает на то, что код следует рассматривать как двоичный файл).

Если код будет интерпретироваться/обработан/скомпилирован на стороне сервера (например, PHP), вы можете установить заголовки в документе, например...

header("Content-Type: application/javascript; charset=utf-8");

Как минимум в PHP, обязательно добавьте этот оператор заголовка до того, как произойдет какой-либо вывод.

Наконец, при определении того, какое выражение использовать, считайте, что (когда оно понимается/соблюдается, т.е. не в IE) спецификация имеет больше полномочий, чем заголовки документов. И оба имеют приоритет над объявлениями привязанных/исходных символов (например, <script type="application/javascript" src="script.js" charset="utf-8"></script>).