Основные принципы работы с кодировками

  1. В каждой операционной системе должна оставаться та локальная кодировка, которая там себя хорошо зарекомендовала исторически, вплоть до полной победы Unicode

    Проблема несовпадения кодировок должна решаться автоматическим (без участия человека) перекодированием на уровне приложения (броузера), возможно, с использованием системных механизмов, но не заменой текущей локализации.

    Говоря проще: ни в Unix нельзя ставить кодировку windows-1251, ни в Windows кодировку KOI8-R (в качестве решения, а не временного хака), несоблюдение этого простого условия приводит к тяжким последствиям, путанице и массе лишних операций.

  2. На каждой русской HTML-страничке должна быть проставлена кодировка параметром charset= (в HTTP заголовке или в самой страничке). Заметьте - любая русская кодировка должна быть проставлена. Есть подробная инструкция о том, как это сделать применительно к кодировке KOI8-R.

  3. На WWW не должно быть никаких меню по типу "Выберите вашу кодировку", это задача броузера, а не пользователя, совершенно автоматическая операция. Броузер может его выполнить только при наличии параметра charset= из пункта 2), т.н. "эвристические" методы угадывания способны лишь позабавить порой, для использования же не пригодны.

  4. Правильный броузер работает внутри в Unicode , поэтому ему всё равно, в какой кодировке была первоначальная страница, KOI8-R, windows-1251, или что-нибудь ещё, лишь бы у него были таблицы соответствия между Unicode и этими кодировками, а также на самой страничке эта кодировка была бы проставлена для автоматического распознавания, см. 2). Правильный броузер либо обязан сообщать серверу обо всех ему известных кодировках через HTTP заголовок Accept-Charset, либо понимать все зарегистрированные кодировки. Т.к. последнее маловероятно, практически остаётся только вариант с Accept-Charset.

  5. После преобразования в Unicode из 4) броузер выдаёт всё пользователю в локальной кодировке, принятой в данной операционной системе, см. 1).

Вышесказанное означает, что совершенно всё равно, в какой кодировке пользователь делает свои странички, он должен её проставить (см. 2)), а те, кто её не видят, могут потребовать от компании производителя броузера поддержки пункта 4).

Ещё проще: пишите хоть в KOI8-R, хоть в windows-1251, но следите за тем, чтобы кодировка была всегда проставлена.

На этом часть, касающаяся пользователей, заканчивается, всё дальнейшее имеет уже отношение к провайдерам или веб-администраторам, просто потому, что совершенно прозрачно (не касается и незаметно) для пользователя.

Полезный ресурс о локализации, кодировках, символах и т.п. - Локализация, как она есть.