Атрибут charset тега <script>
Описание
Атрибут charset определяет кодировку символов внешнего JavaScript-файла. Этот атрибут необходим, если кодировка скрипта отличается от кодировки HTML-документа.
<script src="script.js" charset="UTF-8"></script>
<script src="legacy.js" charset="ISO-8859-5"></script>
Основные кодировки:
| Кодировка | Описание | Когда использовать |
|---|---|---|
UTF-8 |
Стандартная Unicode-кодировка | Для современных проектов (рекомендуется) |
ISO-8859-1 |
Западноевропейская кодировка | Для совместимости со старыми системами |
Windows-1251 |
Кириллическая кодировка | Для старых русскоязычных скриптов |
Рекомендации по использованию:
- Всегда указывайте
charset="UTF-8"для новых проектов - Используйте только для внешних скриптов (с атрибутом
src) - Убедитесь, что кодировка файла скрипта соответствует указанной
- Для встроенных скриптов кодировка определяется документом
Пример с разными кодировками:
<!-- Современный скрипт в UTF-8 -->
<script src="modern.js" charset="UTF-8"></script>
<!-- Легаси-скрипт в Windows-1251 -->
<script src="old-script.js" charset="Windows-1251"></script>
Ограничения и проблемы:
- Не поддерживает все возможные кодировки
- Неправильная кодировка приводит к ошибкам выполнения
- В современных проектах обычно не требуется (по умолчанию UTF-8)
- Может конфликтовать с HTTP-заголовком Content-Type
Примечание: В большинстве случаев атрибут charset можно опустить, если:
- Скрипт и документ используют UTF-8
- Кодировка указана в HTTP-заголовках
- Используются современные инструменты сборки