Подтвердить что ты не робот

Как установить кодировку символов в UTF-8 для default.html?

Я потратил последние несколько часов на то, чтобы мой сайт проверил HTML 4.01 Strict, и я действительно преуспел в этом, но есть еще одно предупреждение, от которого я не могу избавиться. Предупреждение:

Несоответствие кодировки символов!

Кодировка символов, указанная в HTTP-заголовок (iso-8859-1) является отличается от значения в элемент (utf-8). Я буду использовать значение из заголовка HTTP (iso-8859-1) для это подтверждение.

Рассматриваемая страница www.dubiousarray.net/default.html. Как вы можете видеть из источника страницы, у меня есть следующий мета-элемент:

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

и я убедился, что файл default.html сохраняется с кодировкой UTF-8. Странным является то, что все остальные страницы на сайте проверяются без этого предупреждения, и они имеют один и тот же метатег и были сохранены точно так же. Я уверен, что это связано с конфигурацией сервера. Файл .htaccess выглядит так:

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
AddDefaultCharset UTF-8

но я испробовал все исправления, показанные на этой странице, и никто из них не работал. Есть ли у кого-нибудь идеи о том, как избавиться от этого предупреждения? Последнее, в Firefox, если вы щелкните правой кнопкой мыши на странице и выберите "Просмотреть страницу информации", default.html показывает как ISO-8859-1 а на других страницах отображается UTF-8.

Спасибо, Джейкоб

EDIT: что-то еще следует отметить, так это то, что весь html файл был создан и сохранен точно так же (кодировка символов установлена ​​в UTF-8 без спецификации), но default.html является единственным, который не отображается как UTF-8. Поэтому я полагаю, что сервер делает что-то особенное для файла default.html, хотя я не уверен, что, поскольку его нет в файле .htaccess.

4b9b3361

Ответ 1

Вам нужно заменить заголовок HTTP-уровня.

Это должно работать:

<?php 
 header('Content-type: text/html; charset=utf-8'); 
?>

Обратите внимание, что приведенное выше должно быть ПЕРВОЙ вещь в вашем файле. Без исключений. Видеть http://us2.php.net/manual/en/function.header.php

Для общей информации о том, как изменить заголовок набора символов в разных веб-стеках, см. http://www.w3.org/International/O-HTTP-charset

Larry

Ответ 2

Сервер четко маркирует документ как ISO-8859-1 в заголовках HTTP. Попробуйте сохранить default.html, используя кодировку UTF-8, с соответствующим редактором.

Ответ 3

Хорошо, я придумал частичное решение моей проблемы. Поскольку это был только файл default.html, который вызывал предупреждение, я предположил, что сервер делает что-то особенное для него из-за его имени. Поэтому я создал новый файл с именем home.html с тем же содержимым, что и файл default.html, и указал файл .htaccess на новый файл (см. Строку 3 ниже).

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
DirectoryIndex home.html
AddDefaultCharset UTF-8

Это фиксировало проблему, и все файлы теперь распознаются как UTF-8. Я все еще не уверен, что сервер делает с файлом default.html или где настройки, касающиеся этого, но по мере того, как моя проблема ушла, я забуду об этом.

Ответ 4

Вы можете удалить AddDefaultCharset из .htaccess и проверить кодировку? Я сохранил исходный код HTML вашей веб-страницы и открыл его. Кодирование было обнаружено как UTF-8. Однако при просмотре одной и той же веб-страницы, обслуживаемой вашим веб-сервером, кодировка - ISO-8859-1. Вот почему я предлагаю удалить прежнее избыточное правило.

Ответ 5

включить это в свой код:

<meta charset="utf-8" />