Назад | Перейти на главную страницу

Кодирование URL-адреса UTF-8 в CentOS 6.4

У меня есть простой 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]