it-swarm.com.ru

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

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

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

Кодировка символов указанная в заголовок 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.

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

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

16
Jacob de Lacey

Вам необходимо заменить заголовок уровня 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

26
Larry K

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

2
hannson

Хорошо, я придумала частичное решение моей проблемы. Поскольку это был только файл 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 или где находятся соответствующие настройки, но поскольку моя проблема исчезла, я забуду об этом.

1
Jacob de Lacey

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

<meta charset="utf-8" />

0
Charuvind Atre

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

0
Alan Haggai Alavi