Показать сообщение отдельно
Старый 22.05.2004, 11:45     # 8
IVB
Junior Member
 
Регистрация: 16.04.2003
Адрес: Severodonetsk, Ukraine
Сообщения: 54

IVB Путь к славе только начался
Разобрался я с кодировками. Все оказалось до смешного просто.

AddDefaultCharset задает кодировку по умолчанию, которая сообщается сервером браузеру. Мозилла (1.6) это понимает, и считает, что документ именно в этой кодировке, невзирая на meta-теги. А IE (5.0) на это плюет, и пользуется исключительно информацией из meta-тега.

Кроме AddDefaultCharset, есть еще директива AddCharset, которая устанавливает соответствие между расширением имени файла и кодировкой. Т.е. в этой директиве мы можем задать, что все файлы с расширением, например, .ru8, имеют кодировку КОИ8-Р, а с расширением .ru12 - windows-1251. И тогда Апач, передавая браузеру страницы с соответствующими расширениями, будет сообщать, какую кодировку имеют эти страницы (точно так же, как он сообщал о кодировке по умолчанию). И браузеры ведут себя соответственно - Мозилла показывает нужную кодировку (даже если она не задана мета-тегом), а ИЕ плюет на это и пользуется только мета-тегом.

Вывод:

AddCharset ставит в соответствие кодировку файлов их расширениям, и это соответствие отменяет действие ключа charset= в мета-теге (только для новых браузеров).

AddDefaultCharset задает кодировку тех файлов, расширение которых не совпадает ни с одним из расширений, заданных в директивах AddCharset. Это также отменяет действие ключа charset= в мета-теге (тоже только для новых браузеров).

(Я понимаю, что излагаю прописные истины, но сам я довольно долго разбирался в этом механизме, поэтому считаю, что этот пост может помочь быстрее разобраться таким же чайникам, как и я)
IVB вне форума