2013-08-08 3 views
1

У меня есть сайт hompage, закодированный на iso-8859-1. Затем на этот сайт я включаю различные файлы css и javascript, закодированные на utf-8. Есть способ показать правильные символы на странице из js-файлов без изменения всей кодировки?Использовать файлы с различной кодировкой по HTML

ответ

1

Это не должно быть проблемой. Вероятно, вы не смогли определить кодировку некоторых файлов. Для того, чтобы быть на безопасной стороне:

  1. Настройка веб-сервера, чтобы добавить правильный заголовок Content-Type HTTP с атрибутом charset, например:

    Content-Type: application/javascript; charset=utf-8 
    
  2. Когда язык поддерживает его, определить кодировку сам документ, например:

    • 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";
  3. Объявляем набор символов при связывании ресурса, например:

    <script type="text/javascript" src="foo.js" charset="utf-8"></script> 
    

    (На самом деле это не рекомендуется.)

На практике вы, вероятно, можете опустить некоторые из этих шагов. Я бы сказал, что № 1 является самым важным.

+0

Спасибо, что это решение, я просто вижу, что я установил chaset iso-8859-1 в тег скрипта для своих файлов utf-8. – pava91

0

Если вы смешиваете encoding, то в будущем вы столкнетесь с трудностями, особенно если ваши страницы содержат разные locales. Поэтому всегда используйте кодировку UTF-8.

Также вы можете изменить iso-8859-1 на UTF-8, без каких-либо изменений в теле, поскольку UTF-8 содержит все символы любой кодировки.

+0

UTF-8 не является надмножеством ISO-8859-1. Например, большинство акцентированных букв используют 2 байта в UTF-8 и только 1 байт в ISO-8859-1. Вероятно, вы думаете об ASCII против UTF-8. –

+0

Что я подразумеваю под надмножеством, так это то, что UTF-8 содержит все символы, содержащиеся в iso-8859-1. Во всех UTF-8 содержатся все символы на каждом языке. – user2550754

+0

Я не могу изменить iso-8859-1 на UTF-8, потому что веб-страница печатается моим C++ CGI, и я не могу обновить все источники моего cgi на utf-8: S – pava91