У меня есть сайт hompage, закодированный на iso-8859-1. Затем на этот сайт я включаю различные файлы css и javascript, закодированные на utf-8. Есть способ показать правильные символы на странице из js-файлов без изменения всей кодировки?Использовать файлы с различной кодировкой по HTML
ответ
Это не должно быть проблемой. Вероятно, вы не смогли определить кодировку некоторых файлов. Для того, чтобы быть на безопасной стороне:
Настройка веб-сервера, чтобы добавить правильный заголовок
Content-Type
HTTP с атрибутомcharset
, например:Content-Type: application/javascript; charset=utf-8
Когда язык поддерживает его, определить кодировку сам документ, например:
- HTML 4:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- HTML 5:
<meta charset="iso-8859-1">
- CSS:
@charset "UTF-8";
- HTML 4:
Объявляем набор символов при связывании ресурса, например:
<script type="text/javascript" src="foo.js" charset="utf-8"></script>
(На самом деле это не рекомендуется.)
На практике вы, вероятно, можете опустить некоторые из этих шагов. Я бы сказал, что № 1 является самым важным.
Если вы смешиваете encoding
, то в будущем вы столкнетесь с трудностями, особенно если ваши страницы содержат разные locales
. Поэтому всегда используйте кодировку UTF-8
.
Также вы можете изменить iso-8859-1
на UTF-8
, без каких-либо изменений в теле, поскольку UTF-8
содержит все символы любой кодировки.
UTF-8 не является надмножеством ISO-8859-1. Например, большинство акцентированных букв используют 2 байта в UTF-8 и только 1 байт в ISO-8859-1. Вероятно, вы думаете об ASCII против UTF-8. –
Что я подразумеваю под надмножеством, так это то, что UTF-8 содержит все символы, содержащиеся в iso-8859-1. Во всех UTF-8 содержатся все символы на каждом языке. – user2550754
Я не могу изменить iso-8859-1 на UTF-8, потому что веб-страница печатается моим C++ CGI, и я не могу обновить все источники моего cgi на utf-8: S – pava91
Спасибо, что это решение, я просто вижу, что я установил chaset iso-8859-1 в тег скрипта для своих файлов utf-8. – pava91