Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
epros Гость
|
Добавлено: Вс Апр 27 2003 12:59 Заголовок сообщения: Перекодировки и метатеги |
|
|
Народ, объясните мне одну вещь, в которую я никак не могу врубиться: почему все так не любят метатеги с указанием charset?
Постоянно во всех «советах вебмастерам» встречаю указание: «ни в коем случае не вставляйте в свои страницы метатег с указанием charset». Ладно, объяснение вробе бы налицо: многие сервера настроены таким образом, чтобы перекодировать страницу в соответствии с предпочтениями клиента. Поэтому, если они к тому же еще и не умеют вырезать метатеги, то клиент может получить страницу, действительная кодировка которой не будет совпадать с тем, что указано в метатеге. Такую страницу клиент просто не сможет прочитать, как ни мучайся с настройками кодировки в своем браузере. С другой стороны, если метатега нет, то клиент, получив белиберду на своем экране, может свободно переключить кодировку. Но предполагается, что этого и не должно случиться, поскольку сервер уже «правильно» перекодировал страницу - в соответствии с той кодировкой, которая была установлена в браузере.
Почему я не могу понять этого объяснения?
1. А зачем вообще решать за вебмастера, в какой кодировке показывать его материал? Это - его авторское произведение, хочет, чтобы оно было в simplified chinese, пусть так и будет. Если русскоязычный клиент не понимает win-1251, а понимает только koi8-r, то это его проблема. Да и разве такое реально встречается? По-моему, если уж браузер русифицирован, все основные русские кодировки он понимать будет. Ну, стояла у клиента кодировка по умолчанию koi8-r, а мы его попросили показать страницу в win-1251, что его браузер тут же и сделал. Что плохого в таком автоматическом переключении кодировки? Зато вебмастер будет избавлен от геморроя отслеживания неподвластных ему перекодировок его авторского материала.
2. И что хорошего в корявых попытках автоматической подстройки под «предпочтения» клиента, о которых сам клиент скорее всего даже и не подозревает? Ведь как обычно бывает - установили сто лет назад по случаю в браузере кодировку koi8-r, и давно уже забыли об этом. А сервер пыжится, перекодирует в koi8-r то, что как ему кажется было написано в win-1251 (потому что расширение у файла htm, а не html). А на самом-то деле может оказаться, что автор материала как раз и подразумевал koi8-r, и даже метатег соответствующий записал. Но где-то в процессе промежуточного хранения материала кто-то сократил название файла (например, чтобы в какой-нибудь DOS оно нормально воспринималось), а потом как-то забыли подправить расширение в соответствии с понятиями того сервера, на котором размещается файл.
3. Почему бы вообще не запретить перекодировки? Пусть файл показывается как есть. В конце концов, если автор материала хочет, чтобы он показывался в различных кодировках в зависимости от предпочтений клиента, пусть он об этом и заботится: пишет скрипт, который определяет предпочтения клиента и занимается перекодировками. Почему у администратора сервера по этому поводу должна болеть голова? |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://prof Гость
|
Добавлено: Вс Апр 27 2003 15:41 Заголовок сообщения: Ну, есть много случаев, вплоть до текстовых (неграфических) браузеров... |
|
|
а) Потому что есть текстовые (неграфические) браузеры, которые должны показывать текст в той кодировке, на которую настроен экран.
б) Потому что при операции copy+paste текст д.б. в кодировке операционной системы.
в) Потому что META-тэги есть замена HTTP-заголовкам, которые должен выдавать сервер; так что лучше пользоваться оригиналом. |
|
Вернуться к началу |
|
|
epros Гость
|
Добавлено: Вс Апр 27 2003 17:30 Заголовок сообщения: Re: Ну, есть много случаев, вплоть до текстовых (неграфических) браузеров... |
|
|
> а) Потому что есть текстовые (неграфические) браузеры, которые должны показывать текст в той кодировке, на которую настроен экран.
Да, это проблема - так или иначе, такой клиент в инете много чего не увидит. Но стоит ли проблему клиента перекладывать на вебмастера? А может я И НЕ ХОЧУ чтобы мой материал читали такие клиенты?
Ведь если Вы опубликуете в русском журнале научно-фантастический рассказ, это не означает, что Ваш рассказ должен быть автоматически переведен и опубликован для англоязычных читателей. По крайней мере, у Вас должны спросить разрешение на перевод.
Сервер же у вебмастера разрешения на перевод в другую кодировку почему-то не спрашивает. Думаете, это чисто техническая операция, которая никого на задевает? А если с переведенной страницы к Вам вернется ссылка с переведенными параметрами? То, что вебмастеру придется с этим разбираться, разве не напрягает?
> б) Потому что при операции copy+paste текст д.б. в кодировке операционной системы.
Да, это тоже неудобство для клиента. Но мне почему-то кажется концептуально более правильным, чтобы проблемы такого рода решал сам клиент: для этого и существуют программы перекодировщики. В конце концов, если я приобретаю диск, read.me файл к которому написан в кодировке dos-866, а я хочу его прочитать в Windows Nopepad, какое я имею право осуждать разработчиков за то, что они не предусмотрели автоматический определитель моей предпочтительной кодировки и соответствующий конвертер? Не хочешь - не читай, хочешь прочитать - сам конвертируй в удобный тебе вид.
> в) Потому что META-тэги есть замена HTTP-заголовкам, которые должен выдавать сервер; так что лучше пользоваться оригиналом
Да, замена HTTP заголовкам. Концептуально правильнее всего, по-моему, чтобы HTTP-заголовки с указанием кодировки формировал автор материала, а не кто-то от его имени. Но если уж он не имеет такой возможности, лучше их вообще не посылать. |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://prof Гость
|
Добавлено: Вс Апр 27 2003 18:26 Заголовок сообщения: Не хочешь, чтобы твой сайт смотрели? Вообще не публикуй! |
|
|
а1) Если ты не хочешь, чтобы твой материал читали некоторые клиенты, для начала неплохо было бы написать об этом явно, открытым текстом. Но я думаю, ты сам понимаешь, что подобное проявление неуважения отпугнет и других читателей.
а2) Зависит от условий соглашения автора с издателем - предоставил ли автор издательству право перевода и публикации без уведомления. Читай договор.
а3) Право на перекодировку появляется в силу размещения сайта на сервере с перекодировкой. Параметры же надо писАть в процентной кодировке.
б) Ты никогда не видел MasterBootRecord от русской W'9x? Там сообщения на русском языке, в то время как при выоде этих сообщений экран не м.б. русифицирован! Ну а реально далеко не все системы имеют возможность перекодировки - собственно, полноценно это делает только HTTP.
в) Есть кое-кто поглавнее вебмастера - это заказчик, который и решает, размещать ли сайт с перекодировкой или без.
PS: Сходи на мой сайт, почитай про локальные и глобальные сети, про удобный для посетителей сайт, про налоговластие... |
|
Вернуться к началу |
|
|
epros Гость
|
Добавлено: Пн Апр 28 2003 11:25 Заголовок сообщения: В принципе ты во всем прав, но мы немного о разном |
|
|
Никто не спорит с тем, что «клиент всегда прав». Но о том, чтобы удовлетворить клиентов, должен заботиться автор сайта, а не администратор сервера. Администратор сервера по-сути только предоставляет услуги АВТОРУ сайта по хранению и доставке его материалов клиентам. Ну, может быть плюс еще некоторые ОГОВОРЕННЫЕ услуги по обработке этих материалов. В последнюю категорию, собственно, и входят перекодировки. Или я здесь в чем-то не прав?
Я понимаю, что когда размещаю сайт на сервере с перекодировкой, то соглашаюсь с ней. Это очень похоже на покупку «с нагрузкой», распространенную в советские времена. И хотел бы отказаться от «дополнительной услуги», да нельзя: не хочешь брать что дают, вообще иди отсюда.
Вообще-то я даже и не против перекодировок, если точно знаю, что будет перекодировано, когда и как. Почему многие ругают программы-переводчики? Да наверное потому, что автору статьи про Microsoft Windows будет не очень приятно, когда в переводе его статьи на русский язык появится упоминание «Мелко-мягких Окон». Автору хочется контролировать перевод, а программа лишает его такой возможности. Так и с автоматической перекодировкой: если я не уверен, что перекодировано будет только то, что нужно, когда нужно и так как нужно, мне проще отказаться от дополнительных услуг по перекодировке, самому отловить строчку Accept-Charset в заголовке запроса и функцией собственного скрипта перекодировать то, что мне нужно.
А относительно процентной кодировки параметров: ты наверное имел в виду urlencode? Боюсь, что это не спасает. Если параметр запроса - результат заполнения клиентом текстового поля формы, чтобы он правильно раскодировался, все равно нужно знать кодировку клиента. Если я знаю, в какой кодировке послал ему страницу с формой, то мне известна и кодировка посланного с этой формы запроса. Если же нет - возникают проблемы.
Сайт почитаю обязательно. |
|
Вернуться к началу |
|
|
|