Заголовок сообщения: meta content-type Добавлено: 4 Октябрь 2005, 14:42:42
Только что доказывал эту простую вещь на другом форуме, решил и тут напомнить. Господа программеры! Указывайте плз
Код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> или там <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> и прочие
Все разговоры о том, что это якобы костыли, хреново подменяющие HTTP-заголовок — просто дешёвые понты. Пару лет назад оказался в ситуации - оффлайн, чужая машина, два теперь старых, тогда самых новых браузера - Конкверор и Опера. Необходимость обработать кучу html-документов. В половине кучи meta не указаны. А они, старенькие, автоопределением не понимали некоторых кодировок, включая cp1251! Ну лана, perl на то нам даден, скрипт, ок, перелопатил, справился. А если б не умел?
Коллеги! Не понтуйтесь, не создавайте геморроя пользователям. Эта строчка никому не мешает (ессно, если соответствует реальному заголовку и реальной кодировке), а помочь может.
Человек, который тестирует сайты как минимум в трёх браузерах, не забывает об этом по умолчанию. Потому что Опера без метатэга кодировку понять почему-то только с третьего раза может.
Когда не ставят размеры картинок, особенно если их много и они разбавлены текстом, пока картинки не загрузятся, текст читать, мягко говоря, неудобно. Когда браузер таки определяет их размер, весь текст прыгает вниз. Ещё -- проблемы с графической навигацией с отключёнными картинками, если автор сайта не указал размеры.
Хотя я не пояснил. Ессно - это крайний случай при динамическом формировании контента. По добру ессно кодер должен ставить, да даже и не кодер, Дрим сам по дефолту ставит. Другое дело, что у нас на всю страну пара десятков кодеров, да ещё пара сотен умеющих работать с Дримом юзеров...
Акела, ну, говорили уже об этом, в личке. Если со стороны пользователя, которому зачем-то надо сохранить, а потом лопатить кучу страниц в оффлайне -- одно. Если со стороны владельца -- настройка сервера на отдачу http-заголовков, это другое. Прописывать же charset в самом документе -- третье. Приоритет самый низший.
Поэтому, по поводу геморроя пользователям -- призыв должен быть другим: настраивайте свои серверы. А то, что кому-то возжелалось сохранить локально страничку -- его личные проблемы, мне так думается. Есть еще выход, это писать по-английски с UTF-8 или ISO-8859-1 Вся ж кривость от неверных настроек, что сервера, что документа, при транскодировании особенно. Поэтому я не считаю обязательным прописывать эту строчку в каждом html-документе.
tentoys, говорили уже! Верно! Прописать правильную строчку НИЧЕГО НЕ СТОИТ. Польза от неё очевидная, вреда - ноль. Я неправ? А если у Вас что-то не правильно идёт с сервера, то это проблема Ваша - программиста. Привести к единству кодировку, мета и заголовок - проблема?
Если проблема для Вас - не спорю лично с Вами. Если не проблема - внимательно слушаю аргументы на тему "данная строка вредит тому-то и этому-то!"
Протокол HTTP ([RFC2068], раздел 3.7.1) считает ISO-8859-1 кодировкой символов по умолчанию, если параметр "charset" в поле заголовка "Content-Type" отсутствует. На практике эта рекомендация бесполезна, поскольку некоторые серверы не позволяют отправлять параметр "charset", а некоторые могут не быть сконфигурированы для отправки этого параметр. Поэтому агенты пользователей не должны предполагать никакого значения параметра "charset".
Для указания ограничений сервера или конфигурации документы HTML могут включать явную информацию о кодировке символов документа; для предоставления такой информации агентам пользователя может использоваться элемент META.
Например, чтобы указать, что кодировкой символов в текущем документе является "EUC-JP", включите следующее объявление META:
Объявление META должно использоваться, только если кодировка символов упорядочена так, что символы ASCII стоят на своем месте (по крайней мере, при разборе элемента META). Объявления META должны быть в тексте как можно раньше в элементе HEAD.
В случаях, когда ни протокол HTTP, ни элемент META не предоставляют информации о кодировке документа, HTML предоставляет атрибут charset для некоторых элементов. Объединив все эти механизмы, автор может существенно повысить шансы на то, что, когда пользователь загружает ресурс, агент пользователя распознает кодировку символов.
Подводя итоги, соответствующие агенты пользователей при определении кодировки символов документа (от высшего приоритета к низшему) должны руководствоваться следующими источниками в соответствии с приоритетом:
1. Параметр "charset" протокола HTTP в поле "Content-Type". 2. Объявление META, в котором для "http-equiv" установлено "Content-Type" и установлено значение для "charset". 3. Атрибут charset устанавливается на элемент, обозначающий внешний ресурс.
tentoys, ну и? Как вышеприведённый текст противоречит моему призыву ставить МЕТА для использования документов в оффлайне? Пальцем ткните плз! Или Вы невнимательно читали? В ОФФЛАЙНЕ НА БРАУЗЕРАХ, КОТОРЫЕ МОГУТ НЕ ВОСПРИНИМАТЬ АВТООПРЕДЕЛЕНИЕ НЕКОТОРЫХ КОДИРОВОК!
Что в этом тексте говорит против моего призыва и чем мой призыв по Вашему вреден? Даже если вдруг находится допотопный сайт времён огнива и каменного топора, где заголовок страницы (не HTTP, а <head>) формируется не программно, то Ctrl+C, Ctrl+V никто не отменял.
Поскольку вступать в спор мне откровенно лениво -- я просто публику свою точку зрения. Комментарии будут игнорироваться.
Итак:
1. Meta полезна в ряде случаев, не имеющих, как правило, ничего общего с целями, в которых создавался сайт. В том числе -- сохранение страницы на диск в кривом (старом) браузере. Хочется тратить время на тех, кому хочется странного -- ради бога. Только не забудьте и о других вещах. Таких как:
1.1 Имя в title должно совпадать с названием HTML-файла (привет, IE!)
1.2 Все страницы, картинки и должны жить в корне. А стилевых файлов быть не должно вообще.
1.3 Никаких скриптов
1.4 Полная (http://….) ссылка на саму себя на каждой странице.
Извращенцы будет счастливы.
2. Meta нужна, если вы отдаете html-файл для excel или word (пересылая соответствующие HTTP-заголовки) -- HTTP-заголовок с кодировкой до них не доходит.
3. Meta вредны, если на пути к пользователю есть перекодирующие прокси. Сюрприз: они не меняют мету.
Основной же вред от меты с кодировкой в том, что наивные пионеры ставят ее, думая что сервер отправит нужные заголовки.
_________________ We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
Акела, свою квоту читал внимательно, она подтверждает мои слова и приоритеты при определении чарсетов... соглашусь с Crazy, мне такая точка зрения ближе. Собственно, её и ещё тогда озвучивал. Против Вашего, несколько непонятного для меня призыва -- ОФФЛАЙН! Ради того пользователя, который желает сохранить файл и потом его читать/править/ и т.д. Если только ради этого -- не-а, не стану. К тому же, можно по-Вашему copy-paste и телемаркет! А вот чем может грозить прописывание этой строчки, Вы знаете, из-за кривости настроек сервера, из-за кривости настроек браузера, из-за транскодирования (о чём говорилось выше), и т.д. зачем создавать множественность возможных роблем юзеру ради одной строчки? Спор, похоже, опять перерастает в holywar, а не хочется.… может, каждый читающий сам сделает свой выбор?
tentoys, я нормальный человек. Если я прошу Вас указать на недостатки моей точки зрения, то я не кидаю понты, а хочу её (точку зрения) с Вашей помощью исправить, если я ошибаюсь! Я просил Вас ответить но очень конкретные вопросы и по прежнему буду искренне благодарен за точные и аргументированные ответы на них. Прежде всего такой вопрос:
Что в этом тексте говорит против моего призыва и чем мой призыв по Вашему вреден?
Акела, и я нормальный человек, как ни странно. Странна Ваша позиция (кидание понтов, дешевые понты, писАлы...), ну да ладно, не будем и оставим. Приведённый мною текст говорит лишь о необходимости настроек сервера и об использовании meta charset для указания ограничений сервера или документов html. Вот. Ваш призыв имеет право на жизнь, но моя кочка зрения иная, о чём я писал выше и раньше Повторяясь -- прописывание чарсетов поможет оффлайнерам обращаться к скачанным из сети документам и в случаях, о которых написал Crazy. Это частный случай Прописывание чарсетов в html документе
Цитата:
А вот чем может грозить прописывание этой строчки, Вы знаете, из-за кривости настроек сервера, из-за кривости настроек браузера, из-за транскодирования (о чём говорилось выше), и т.д. зачем создавать множественность возможных роблем юзеру ради одной строчки?
Чего спорим? Ваша точка зрения одна, моя -- другая. Ваш призыв помогать юзерам для оффлайна понятен. Против Вашего призыва в тексте ничего не сказано, там совсем о другом. И, думаю, моё мнение по данному вопросу тоже достаточно прозрачно и имеет право на существование.
Чем она, моя точка зрения, по Вашему, вредна? Был бы признателен за аргументированные ответы. Спасибо. (частный случай обработки оффлайновых документов 2 года назад уже проехали) Честно... спорить не стану. Отвечать. в который раз, наверное, тоже...
Таких как: 1.1 Имя в title должно совпадать с названием HTML-файла (привет, IE!) 1.2 Все страницы, картинки и должны жить в корне. А стилевых файлов быть не должно вообще. 1.3 Никаких скриптов 1.4 Полная (http://….) ссылка на саму себя на каждой странице.
Не имеют ни малейшего отношения к данной теме.
Уважаемый Crazy, я был бы искренне рад выслушать твою точку зрения, в которой будет привязан твой текст к теме топика. Пока что - оффтопик как есть!
tentoys писал(а):
Странна Ваша позиция (кидание понтов, дешевые понты, писАлы...)
tentoys - Вы нагло врёте в глаза всем участникам форума. Если Вы готовы ответить за свою наглую ложь - я Вас слушаю внимательно.
Последний раз редактировалось Акела 5 Октябрь 2005, 12:02:14, всего редактировалось 4 раз(а).
bE(o0L, батенька, а HTTP-заголовки когда отменили? Типа в тупую - header - ну и так далее?
Прежний вопрос: - какие реальные практические задачи вступают в противоречие с тем, что я сказал? От уважаемого Crazy есть очень глубокотеоретический мессаг, не имеющий никакого отношения к теме, от tentoys — простое базарное хамство.
Кажется мне, что и сам дефорум и этот раздел созданы несколько для иного. Например для достойной дискуссии.
Акела, не понял? какая разница что я дублирую? не цепляйся к словам. Иначе я могу сказать что header() это не заголовок а функция устанавливающая заголовки
факт остаётся фактом. можно не писать header("Content-Type:text/html;charset=utf-8"); а написать лишь meta (это особенно популярно если нет серверного скрипта) и всё будет работать как нужно.
Интересно почему? тут ведь говориться о малополезности meta.
bE(o0L, в том и дело, что не факт. Первичным является таки отзыв сервера, запрошеный UI, да? А уж потом во всяких МЕТА ты можешь врать всё, что заблагорассудится.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 6 Октябрь 2005, 14:33:49
1NV1Z0R, если кто-то не знаком с тем, что обозначают смайлы - гугл тому в помощь. а если кто-то будет флеймить не по делу - получит замечание. тебе было одного раза мало собрать 5 замечаний?
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
факт остаётся фактом. можно не писать header("Content-Type:text/html;charset=utf-8"); а написать лишь meta (это особенно популярно если нет серверного скрипта) и всё будет работать как нужно.
Положи на своем сервере 3 документа в разных кодировках и кинь сюда ссылки. А мы коллективно проверим твое колдунство.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.