У меня есть простой html-сайт на сервере CentOS 6.4. На каждой странице html я установил
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Я уже добавил в файл .htaccess следующую строку
IndexOptions Charset=UTF-8
и в файле httpd.conf сайта я добавил
<VirtualHost *:80>
/* other stuff */
AddDefaultCharset UTF-8
IndexOptions Charset=UTF-8
</VirtualHost>
В основном httpd.conf строка
AddDefaultCharset UTF-8
также установлен.
Тем не менее, когда я отлаживаю в Chrome, я получаю, что заголовки моих запросов:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
и мой заголовок ответа:
Content-Type: text/html; charset=iso-8859-1
Получив доступ к команде локали, я получаю
LANG=el_GR.UTF-8
LC_CTYPE="el_GR.UTF-8"
LC_NUMERIC="el_GR.UTF-8"
LC_TIME="el_GR.UTF-8"
LC_COLLATE="el_GR.UTF-8"
LC_MONETARY="el_GR.UTF-8"
LC_MESSAGES="el_GR.UTF-8"
LC_PAPER="el_GR.UTF-8"
LC_NAME="el_GR.UTF-8"
LC_ADDRESS="el_GR.UTF-8"
LC_TELEPHONE="el_GR.UTF-8"
LC_MEASUREMENT="el_GR.UTF-8"
LC_IDENTIFICATION="el_GR.UTF-8"
LC_ALL=
а в / etc / sysconfig / i18n есть следующие строки
LANG="el_GR.UTF-8"
SYSFONT="latarcyrheb-sun16"
Тем не менее, каждый URL-адрес, к которому я пытаюсь получить доступ, его заголовок на греческом языке, я получаю ошибку 404, что URL-адрес /συχνÎÏ‚_εÏωÏÎήσεις.html не найден. Страница есть, но кодировка по какой-то причине не работает.
Буду признателен за любую помощь. Спасибо
В IndexOptions
Директива влияет только на автоматически сгенерированные списки каталогов apache и не влияет на ваши фактические html-страницы.
В вашем запросе не указан какой-либо тип кодировки, это не должно повлиять на создание вашей страницы.
В содержание (также фактическая кодировка вашего статического html файла) также не должна ничего менять, а не ее <meta
настройки.
Единственная директива, которая имеет эффект в вашем случае, - это AddDefaultCharset UTF-8
. Это должно было работать. Что-то, вероятно, отменяет вашу кодировку.
Что будет, если вы обслужите простой текстовый файл? Получите ли вы с ним HTTP-заголовок ответа utf8?
Проверьте свой html файл:
file /var/www/html/your_page.html
Возможно, ваш редактор сохранил кодировку Latin-1.
Чтобы изменить кодировку, попробуйте:
iconv -f ascii -t utf8 [filename] > [newfilename]
или
recode UTF-8 [filename]