2014-02-09 5 views
0

У меня есть html-файл, закодированный в ANSI. если я попытаюсь просмотреть его, я получаю непонятные символы, например, вопросительные знаки. Я пытался поставить этот тег:HTML-код типа контента (utf8)

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

, но это не изменило любую вещь.

Я преобразовал файл в utf-8 и попытался снова и вуаля, он сработал.

поэтому я удалил строку выше: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> и открыл файл, и он отобразился нормально.

Итак, мой вопрос: что означает эта строка кода?

+0

Какие символы? Какой язык? – Niels

+0

Если вы сделаете свой файл ложным о его кодировке, это не сработает. – SLaks

+0

Арабский язык, я редактировал вопрос. –

ответ

1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
  • http-equiv атрибут обеспечивает заголовок HTTP для информации/значение содержания атрибута.
  • Атрибут content дает значение, связанное с атрибутом http-equiv или name.
  • Атрибут charset указывает кодировку символов для HTML-документа.

Эффективно, выше <meta> декларация будет инструктировать браузер иметь text/html тип документа с набором символов, установленным в UTF-8.

Включение мета-декларации не будет иметь большого значения, если заголовок Content-Type уже обслуживается через HTTP. То есть, настоящий HTTP-заголовок имеет приоритет над всем (спецификация UTF является исключением), за исключением переопределения пользователя. Атрибут charset просто означает резервную копию и будет использоваться только в том случае, если декодирование документа с использованием кодировки, указанной в заголовке HTTP, терпит неудачу.

Обратите внимание, что это бессмысленно, если файл не сохраняется как UTF-8. charset будет эффективен только в том случае, если файл сохранен как UTF-8. Для того, чтобы сохранить его в кодировке UTF-8, вы можете просто добавить Byte Order Mark (BOM), в самом начале файла:

$contents = file_get_contents('yourFile.ext'); 
file_put_contents($your_file, "\xEF\xBB\xBF".$content); 

Смотрите также:

Смежные вопросы