Кодировка HTML по умолчанию имеет значение "Western (ISO-8859-1)" локально - PullRequest
1 голос
/ 06 декабря 2011

Допустим, у меня есть следующий файл в каталоге index в каталоге 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, но похоже, что кодировка символов по умолчанию установлена ​​на Western (ISO-8859-1), я вижу это, когда нажимаю view -> кодировка символов в firefox.

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

Ответы [ 3 ]

2 голосов
/ 06 декабря 2011

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

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

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

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

1 голос
/ 19 декабря 2011

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

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

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

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

1 голос
/ 06 декабря 2011

Может быть, попробуйте добавить

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

в <head> секции?

...