» Єдина складність

Оцилиндровочный станок Тайга

У деяких випадках Ви не можете гарантированно визначити в якому кодуванні віддається документ клієнтові. У цьому випадку Charset може послужити погану службу. Випадки такі наступають, як Ви , напевно, догадалися, при використанні русифікованого програмного забезпечення. Зокрема при установці apache/RUS. Не знаю, якими міркуваннями керувалися розроблювачі локальної версії, але алгоритм автоматичного перекодування HTML сторінок не піддається ніякому логічному поясненню. По-перше apache/RUS повністю ігнорує тэг charset, перекодована сторінка йде клієнтові зі старим тэгом. По-друге,вихідне кодування документа apache/RUS визначає не по вмісту сторінки, а по настроюваннях своїх конфигов.

Втім це ще не так страшно. Основна погано те, що віддає кодировку, що, документа пророчити практично неможливо. Для Microsoft Explorer документи віддаються переважно в кодуванні win 1251. Для Netscape Navigator й Communicator, як прийде, залежно від версії й платформи. Особливо це “радує”, якщо згадати, що Netscape Communicator не вміє визначати кодування документа без тэга charset і показує документи в кодуванні попередньої переглянутої сторінки. Що ж стосується інших Mozzila сумісних і не дуже, клієнтів, то вони одержують в основному примусові які8 HTML документи. Але знов-таки гарантії немає ніякий. У цьому випадку можна порадити три варіанти.

Перший, найпростіший. Викинути тэги charset зі своїх сторінок, перекодувати сторінки у вихідне кодування для apache/RUS і сподіватися, на його інтелект.

Другий. Відключити автоматичне перетворення кодувань документів за допомогою директиви CharsetTurnOff On у файлі .htaccess, і займайтеся самостійним перекодуванням документа залежно від версії http клієнта. Для всіх Mozzila сумісних клієнтів віддавайте сторінки в кодуванні 1251 а для інших які8, з обов’язковою вказівкою тэга charset.

Третій. Самий розумний, але можливий тільки в тому випадку, якщо у вас є повний доступ до настроювань вашого http сервера apache.

Отже:

Перекодуйте всі документи на вашому http сервері в кодування win1251.

Заміните наступний тэг <HTML> на тэг <HTML LANG=ru>, це вкаже, що ваш документ російською мовою й полегшить життя пошуковим роботам.

У самому верхньому каталозі, що містить ваші документи, створіть файл із именем. htaccess, доступний усім на читання:

Для версій Apache, починаючи з 1.3.12:

AddDefaultCharset windows-1251

AddLanguage ru .html .txt

Для версій Apache, починаючи з 1.3.10:

AddCharset windows-1251 .html .txt

AddLanguage ru .html .txt

Якщо файл.htaccess уже є, просто додайте туди ці рядки. Мається на увазі, що ваші HTML документи закінчуються на .html, якщо вони закінчуються на .htm, поміняйте .html на .htm у пропонованому зразку.

Якщо у вас на сервері коштує Apache/RUS, то відключите автоматичне перекодування, додавши в.htaccess директиву CharsetTurnOff On

І ніколи не дійте за порадою, досить шановного мною, Артемія Лебедєва :

Якщо ви почитуєте исходники й виявляєте там таке, про що ніде не чули й не читали, спробуйте поэкспериментировать із кодом. Скопіюйте невідоме буквосполучення й пограйтеся з ним - вставте в HTML і завантажите в броузер. Якщо нічого не відбувся (тобто буквально - код себе ніяк не виявив), викиньте його. Від гріха подалі. А те у вас не відбулося, а у всього Рунета відбудеться. Не користуйтеся чим не треба. Коли навчитеся, самі зрозумієте, що потрібно, а що - немає.

Учитеся відразу розуміння саме не прийде.