Указание явной кодировки
Еще одна очень важная и востребованная возможность реализуема с использованием AddType. Речь идет о явном указании кодировки (.htaccess кодировка) для документов.
AddDefaultCharset задает дефолтную таблицу символов (кодировку) для всех выдаваемых страниц на веб сервере Apache.
Указываем кодировку на все файлы, в которой по умолчанию получает документы браузер:
AddDefaultCharset WINDOWS-1251
Это наиболее важная директива из представленных на данной странице, так как часто можно увидеть такую картину, что скрипты выдают или включают в страницу элементы в кодировке в отличной от кодировки основного документа, т.е. содержимое основного блока страницы читается, а различные блоки с например опросами сервер выдает в другой - в итоге мы видим просто непонятные закорючки. Данная директива избавляет вас от таких проблем, при чем данный неприятный эффект наблюдаеться в различных браузероах по разному, особенно часто этим грешила Опера.
При загрузке файла на сервер (не важно кем - админом или посетителем), возможна перекодировка, его - указываем, что все получаемые файлы будут иметь кодировку windows-1251,для того что бы указать кодировку на загружаемые файлы напишем:
CharsetSourceEnc windows-1251
Если необходимо отменить перекодировку сервером файлов:
CharsetDisable On
Принято, чтобы при попадании на русскоязычный сервер пользователь получал страницу в "своей" кодировке, определяемой автоматически на основе той информации об операционной системе, которую передает серверу браузер: например, установив, что пользователь работает в Windows, сервер выдает ему страницу в кодировке Windows-1251, а установив, что он работает в Unix, выдает страницу в koi8. Если выбранная таким образом страница не подходит, клиент может сменить кодировку вручную. Основных схем выбора три: по префиксу каталога , по имени виртуального сервера и по номеру порта. У каждой из них есть свои преимущества и свои недостатки.
1. http://htaccess.net.ru/koi/index.php
http://htaccess.net.ru/win/index.php - выбор кодировки по префиксу каталога
2. http://koi.htaccess.net.ru/index.php
http://win.htaccess.net.ru/index.php - выбор кодировки по имени сервера
3. http://htaccess.net.ru:8001/index.php
http://htaccess.net.ru:8001/index.php - выбор кодировки по порту
А теперь допустим, все страницы Вашего сервера выполнены в кодировке windows-1251, все хорошо, все работает. Однако, вдруг понадобилось сделать подраздел сервера например на финском языке. Вы создали у себя на компьютере соответствующие страницы, текст которых написан по-фински, загрузили на сервер в специальный каталог (например, http://www.Ваш_сервер.ru/fin) и, казалось бы, все сделано, но буквы национального алфавита показываются браузером неверно.
В таких случаях нужно явно указывать кодировку, в которой выполнены соответствующие страницы. Без этого браузер не поймет как нужно отображать национальные символы, которые находятся в документе. Более того, если для всего сервера выдается кодировка windows-1251, естественно, финские страицы будут выданы браузеру тоже с кодировкой windows-1251 в заголовке, что приведет к стопроцентно неправильному отображению.
Итак, учимся выдавать нужную кодировку с помощью настройки .htaccess. Как уже говорилось, документы на другом языке лежат у нас в подкаталоге /fin. Заходим в него, создаем там файл .htaccess и добавляем туда строчку:
# содержание файла .htaccess:
AddType "text/html; charset=iso-8859-1" .html
В результате для всех файлов с расширением .html в каталоге /fin будет выдаваться такой http-заголовок:
telnet net.ru 80
Connected to net.ru.
HEAD /fin/index.html HTTP/1.1
Host: net.ru
HTTP/1.1 200 OK
Last-Modified: Wed, 22 Jul 2005 16:29:30 GMT
Connection: close
Content-Type: text/html; charset=iso-8859-1
Кодировку iso-8859-1 в данном случае мы использовали потому что финский язык это именно iso-8859-1. Это общий набор символов для большинства западноевропейских языков. Узнайте какой charset должен выдаваться для нужного Вам языка и воспользуйтесь AddType.
Предположим, что вам необходимо установить кодировку windows-1251 на все файлы с расширением .htm и кодировку koi-8r на все файлы с расширением .htm, различные кодировки для различных типов файлов:
AddType "application/x-httpd-php3; charset=windows-1251" .html
AddType "application/x-httpd-php3; charset=koi-8r" .htm
С программной точки зрения - удобней всего использовать деление - определение языка сайта по каталогу или поддомену. Что мы можем видеть по модулям популярных движков. Ниже приведен стандарт кодов - доменов для всех стран (языков конечно же значительно меньше):
Сайт создан в системе
uCoz