Кодировка HTML по умолчанию используется для западной (ISO-8859-1) локально

Допустим, у меня есть следующий файл в вызванном индексе в каталоге D:\Experimental:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
  <head>
    <title>Minimal XHTML 1.1 Document</title>
  </head>
  <body>
    <p>This is a minimal <a href="http://www.w3.org/TR/xhtml11">XHTML 1.1</a> document.</p>
  </body>
</html>

Если я открою ссылку

file:///D:/experimental/index.html

Я вижу html, но кажется, что кодировка символов по умолчанию является западной (ISO-8859-1), я вижу это, когда нажимаю «Просмотр» -> «Кодировка символов» в Firefox.

Я хочу отобразить это в UTF-8, потому что Western (ISO-8859-1) неправильно отображает некоторые символы. Кто-нибудь знает, как это исправить?


person NomenNescio    schedule 06.12.2011    source источник


Ответы (3)


Вы должны включить:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

в вашем элементе HEAD.

Редактировать Я только что попробовал ваш пример в Firefox на Mac, и даже без тега meta он правильно интерпретирует документ как UTF-8. Стандарт указывает, что он должен использовать инструкцию обработки XML, но вы < em>следует также использовать правильные заголовки HTTP. Поскольку вы не отправляете заголовки (поскольку вы не используете HTTP), вы можете указать их с помощью тега meta.

person Jonathan    schedule 06.12.2011

Может попробовать добавить

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

в разделе <head>?

person matino    schedule 06.12.2011

При загрузке файлов с диска ваш браузер не имеет заголовка HTTP Content-Type для чтения кодировки, поэтому он угадывает. Чтобы угадать кодировку документа, он использует текущую кодировку вашей операционной системы, фактические байты, которые находятся в файлах, и информацию внутри самого файла.

Как писал Джонатан, вы можете добавить

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

элемент, который поможет браузеру использовать правильный тип контента. В любом случае обратите внимание, что этот элемент часто будет игнорироваться браузерами, если ваш документ отправляется с неправильно настроенного HTTP-сервера, который явно указывает другую кодировку заголовка Content-Type.

person gioele    schedule 19.12.2011