В какой кодировки лучше сохранять HTML?


. Оглавление (нажмите, чтобы открыть):
Теги используются для предоставления информации (метаданных) о веб-странице, метаданные не отображаются на веб-странице, а дают либо какие-то указания браузеру, либо предоставляют дополнительную информацию для поисковых систем:. В нашем примере мы использовали три элемента : первый указывает браузеру кодировку HTML-документа, два других мета тега предназначены для предоставления информации о содержимом веб-страницы для поисковых систем. Далее мы рассмотрим каждый из них подробнее.
Примечание: теги должны располагаться РІ элементе .. РљРѕРґРёСЂРѕРІРєР° РіРѕРІРѕСЂРёС‚ браузеру, какой набор символов используется РЅР° данной веб-странице. Например, страницы РјРѕРіСѓС‚ быть написаны СЃ использованием РєРѕРґРёСЂРѕРІРѕРє для СЂСѓСЃСЃРєРѕРіРѕ, английского, арабского, китайского Рё множества РґСЂСѓРіРёС… семейств символов.. Для указания РєРѕРґРёСЂРѕРІРєРё используется тег СЃ атрибутом charset, который рекомендуется располагать РІ качестве первого элемента внутри :. Примечание: UTF-8 является универсальной РєРѕРґРёСЂРѕРІРєРѕР№, поддерживающей большинство языков Рё спецсимволов.. РЈ любого сайта есть набор ключевыС..
слов Рё словосочетаний, РїРѕ которым поисковые системы ищут нужные ресурсы РІ сети. Р�менно эти слова Рё должны составлять содержимое keywords.. Самый простой СЃРїРѕСЃРѕР± подобрать нужные ключевые слова для текущей страницы — это определить РїРѕ каким словам РІС‹ сами стали Р±С‹ искать материал, представленный РЅР° ней? Р’РѕС‚ это Рё Р±СѓРґСѓС‚ нужные ключевые слова. Пример:. Ключевые слова указываются через запятую или пробел Рё РјРѕРіСѓС‚ быть написаны РІ любом регистре. Рекомендуется указывать РЅРµ более 10-15 ключевых слов или словосочетаний.
Р’ настоящее время поисковые системы стали более продвинутые Рё определяют категорию, Рє которой относится информация, РїРѕ содержимому веб-страницы, Р° ключевые слова отошли РЅР° второй план или полностью игнорируются.. Р-начение description используется для краткого описания содержимого, расположенного РЅР° текущей странице. Рекомендуемая максимальная длина такого описания РЅРµ должна превышать 180 символов:. Краткое описание страницы может быть использовано поисковыми система РЅР° странице СЃ результатами РїРѕРёСЃРєР° РїРѕРґ названием страницы Рё URL-адреса:. Также краткое описание используется РЅР° сайтах некоторых соцсетей, РїСЂРё добавлении ссылки:
РџСЂРё составлении краткого описания следует учитывать следующие моменты:. Примечание: краткое описание, расположенное РїРѕРґ ссылкой РЅР° странице СЃ результатами РїРѕРёСЃРєР°, называется сниппетом.. Тег является частью метаданных Рё используется для указания заголовка страницы. Р-аголовок страницы можно сравнить СЃ названием главы РєРЅРёРіРё, так как РѕРЅ должен говорить пользователям Рё поисковым системам РѕР± информации представленной РЅР° странице.. Р-аголовок должен содержать важные ключевые слова для того, чтобы поисковые системы могли включить вашу страницу РІ результаты РїРѕРёСЃРєР° РїРѕ определенным запросам. Также РѕРЅ может помочь пользователям решить, стоит ли посетить ваш сайт или нет, так как РѕРЅРё Р±СѓРґСѓС‚ видеть заголовок РІ качестве текста ссылки РІ результатаС..
поиска:. Тег является одним из наиболее важных тегов на странице. Рассмотрим небольшой список рекомендаций, которых нужно придерживаться для написания оптимизированного заголовка для поисковых систем:. В этой статье мы расскажем о том, как изменить кодировку страницы так, чтобы русский символы отображались нормально, а не как различные кракозябры.
Если вы открываете страницу, а там на месте кириллицы отображаются знаки вопроса:. �ли в случае, когда русские буквы заменяются на кракозябры:. То для того, чтобы вернуть страницу к нормальному виду вам нужно проверить две вещи:. Бывает так же ещё проблема в сервере, на котором отображается страница, там тоже может стоять неправильная кодировка, но этот случай мы разбирать не будем.. Если у вас стоит неправильная кодировка у самого файла. Тогда при записи русскоязычных слов в коде страницы при сохранении вам будет выдаваться предупреждение о неправильной кодировке страницы, выглядеть это будет примерно так:
Р-десь говориться примерно следующее.. «Р”окумент имеет РЅРµ корректную РєРѕРґРёСЂРѕРІРєСѓ, РїСЂРё сохранении файла некоторые символы Р±СѓРґСѓС‚ сохранены РЅРµ верно. Чтобы решить проблему поменяйте РєРѕРґРёСЂРѕРІРєСѓ файла РЅР° UTF-8 «. Такая проблема может коснутся любого файла, РЅРµ обязательно HTML , РЅРѕ Рё, например, CSS или JS .. Для того, чтобы изменить РєРѕРґРёСЂРѕРІРєСѓ файла, необходимо открыть его РІ стандартном Блокноте , который есть РЅР° всех Windows РћРЎ . РџСЂРё сохранении РІ выпадающем СЃРїРёСЃРєРµ выбрать РєРѕРґРёСЂРѕРІРєСѓ UTF-8 , изменить тип файла РЅР° Р’СЃРµ файлы Рё подтвердить сохранении
Теперь РІСЃС‘ это же РЅРѕ РІ картинках:. РќРµ правильная РєРѕРґРёСЂРѕРІРєР° стоит РІ мета-тэгах страницы. Где посмотреть РєРѕРґРёСЂРѕРІРєСѓ РІ мета-тэгах? Открываем РєРѕРґ страницы Рё ищем РІ разделе такую строчку:. Как РІС‹ уже поняли, нас интересует строка meta charset = «utf-8″ > , РѕРЅР° то Рё задает РєРѕРґРёСЂРѕРІРєСѓ документа, если Сѓ вас отсутствует этот тег или РІ качестве значения атрибута charset стоит какое-то РґСЂСѓРіРѕРµ значение, то измените его РЅР° utf-8 .. Метатеги используются для хранения информации предназначенной для браузеров Рё поисковых систем
Например, механизмы поисковых систем обращаются Рє метатегам для получения описания сайта, ключевых слов Рё РґСЂСѓРіРёС… данных.. Среди разработчиков сайтов существует мнение, что правильно написанные метатеги позволяют подняться Рє верхним строчкам поисковых серверов. РќР° самом деле это РЅРµ так, РЅР° РѕРґРЅРёС..
метатегах высоко не поднимешься, но и неудачно выполненное содержимое метатегов может ухудшить рейтинг сайта.. Два метатега предназначены специально для поисковых серверов: description (описание) и keywords (ключевые слова). Некоторые вебмастера добавляли в раздел keywords ключевые слова, которые не имеют никакого отношения к теме сайта, но зато пользовались определенным успехом среди посетителей поисковиков. Однако, через некоторое время, поисковые системы научились бороться с таким явлением и проверяют содержимое веб-страницы на соответствие заявленным ключевым словам.. Некоторые принципы, относящиеся к метатегам:
Большинство поисковых серверов отображают содержимое поля description (пример 1) при выводе результатов поиска. Если этого тега нет на странице, то поисковый движок просто перечислит первые встречающиеся слова на странице, которые, как правило, оказываются не очень-то и в тему.. Теоретические основы кодирования и комментарии к работе программы читайте в статье о принципах работы html кодировщика. Для просмотра начального диапазона символов Unicode (первые 64К) можно воспользоваться динамической таблицей символов блоков Unicode. Для изучения основ Unicode воспользуйтесь официальной документацией на Unicode (на английском).
Чтобы правильно отобразить html-документ, браузер должен знать какая РєРѕРґРёСЂРѕРІРєР° символов использовалась РїСЂРё создании документа. ASCII — РѕРґРЅР° РёР· самых старых компьютерных РєРѕРґРёСЂРѕРІРѕРє, РІ которой каждому символу соответствует строго определенное число. Например, символу «a» соответствует число 97, Р° символу «A» — число 65. Эта аббревиатура расшифровывается как American Standard Code for Information Interchange (американская стандартная кодировочная таблица для печатныС..
символов Рё некоторых специальных РєРѕРґРѕРІ). ASCII — это однобайтовая РєРѕРґРёСЂРѕРІРєР°, РІ которую изначально заложено всего 128 символов: Р±СѓРєРІС‹ латинского алфавита, арабские цифры Рё С‚.Рґ. Р’С‹ можете посмотреть РЅР° полный комплект Печатаемых символов ASCII.. Позже ASCII была расширена (изначально РѕРЅР° РЅРµ использовала РІСЃРµ 8 Р±РёС‚), поэтому появилась возможность использовать уже РЅРµ 128, Р° 256 (2 РІ 8 степени) различныС..
символов, которые можно закодировать в одном байте информации. Такое усовершенствование позволило добавлять в кодировку ASCII символы национальных языков разных стран, помимо уже существующей латиницы. Вариантов расширенной кодировки ASCII существует очень много по причине того, что языков в мире тоже немало. Думаю, что многие из вас слышали о такой кодировке, как KOI8 (Код Обмена �нформацией, 8 бит) — это тоже расширенная кодировка ASCII. KOI8 включала в себя цифры, буквы латинского и русского алфавита, а также знаки пунктуации, спецсимволы и псевдографику.
Организация Международных стандартов (International Standards Organization) создала диапазон кодировок для различных алфавитов/языков.. Для документов на английском и большинстве других западноевропейских языков, широко поддерживается кодирование ISO-8859-1.. В HTML ISO-8859-1 является кодировкой по умолчанию (в XHTML и в HTML5 кодировкой по умолчанию является UTF-8)
РџСЂРё использовании РєРѕРґРёСЂРѕРІРєРё страницы, отличной РѕС‚ ISO-8859-1, вам необходимо указать это РІ теге .. Примером ANSI-РєРѕРґРёСЂРѕРІРєРё является всем известная Windows-1251.. Windows-1251 выгодно отличается РѕС‚ РґСЂСѓРіРёС… 8 битных кириллических РєРѕРґРёСЂРѕРІРѕРє (таких как CP866 Рё ISO 8859-5) наличием практически РІСЃРµС..
символов, использующихся в русской типографике для обычного текста (отсутствует только знак ударения). Она также содержит все символы для других славянских языков: украинского, белорусского, сербского, македонского и болгарского. Ниже приведены десятичные значения символов кодировки Windows-1251.. Для отображения символов таблицы в HTML-документе воспользуйтесь следующим синтаксисом:. Юникод (англ
Unicode) — стандарт кодирования символов, позволяющий представить знаки почти всех письменностей РјРёСЂР°, Рё специальных символов. Представляемые РІ СЋРЅРёРєРѕРґРµ символы кодируются целыми числами без знака. Юникод имеет несколько форм представления символов РІ компьютере: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) Рё UTF-32 (UTF-32BE, UTF-32LE). (РђРЅРіР». Unicode transformation format — UTF)
UTF-8 — это в настоящее время распространённая кодировка, которая нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий из символов Unicode с номерами меньше 128 (область с кодами от U+0000 до U+007F), содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F.
РљРѕРґРёСЂРѕРІРєР° UTF-8 является универсальной Рё имеет внушительный резерв РЅР° будущее. Это делает ее наиболее СѓРґРѕР±РЅРѕР№ РєРѕРґРёСЂРѕРІРєРѕР№ для использования РІ интернете.. ). Рђ здесь пойдёт речь Рѕ практической стороне использования UTF‑8.. Р’ РєРѕРґРёСЂРѕРІРєРµ UTF‑8 РІС‹ можете непосредственно включать РІ документ любые символы РёР· всего набора Unicode. Старинные РєРѕРґРёСЂРѕРІРєРё (например, Windows‑1251 или KOI8‑R) предоставляли РЅРµ более 256 символов, Р° РІ Unicode есть свыше 100 000 символов. Среди РЅРёС..
— типографские знаки (тире, кавычки, многоточие, апостроф, неразрывный пробел, неразрывный дефис Рё РїСЂ.), специальные символы (в„–, В§, В©, ‰, Г- Рё РїСЂ.), Р±СѓРєРІС‹ СЃ диакритическими знаками Рё лигатуры (Г©, ГЁ, Гњ, Г†, Гё, п¬Ѓ Рё РїСЂ.), символы почти всех существующих РІ РјРёСЂРµ алфавитов (О±, О©, Чђ, ЧЄ, СЈ , дјІ , е„» Рё РїСЂ.), пиктограммы Рё значки (в†’, в– , , в�є Рё РїСЂ.) Рё множество РґСЂСѓРіРёС… символов.. Р-агляните РІ «РўР°Р±Р»РёС†Сѓ символов» РЅР° своём компьютере. Р’ РєРѕРґРёСЂРѕРІРєРµ UTF‑8 РІС‹ можете взять РїСЂСЏРјРѕ РёР· этой таблицы любой СЃРёРјРІРѕР» Рё вставить его непосредственно РІ СЃРІРѕР№ документ. Если вам нужен знак копирайта, градуса или интеграла — РЅРµ требуется искать особый шрифт, представлять этот знак РІ графическом формате или выдумывать ещё какие‑то ухищрения
Р’ РєРѕРґРёСЂРѕРІРєРµ UTF‑8 любой СЃРёРјРІРѕР», Р±СѓРґСЊ то РґСЂРѕР±СЊ в…“ или китайский иероглиф, можно использовать РІ документе точно так же, как латинскую Р±СѓРєРІСѓ «A», СЂСѓСЃСЃРєСѓСЋ «Р»» или знак «+».. Р’ старых кодировках можно было вставить РІ документ особые символы СЃ помощью подстановок (references ). Например, длинному тире соответствовала подстановка & mdash ; (Р° также & # 8212 ; или & # x2014 ; ), Р° греческой Р±СѓРєРІРµ «РїРё» — подстановка & pi ; (Р° также & # 960 ; или & # x3c0 ; ). Для большинства символов существовали только числовые подстановки: например, для РґСЂРѕР±Рё в…“ — & # 8531 ; или & # x2153 ; , для музыкального знака «Р±РµРјРѕР»СЊ» — & # 9837 ; или & # x266d ; , для неразрывного дефиса — & # 8209 ; или & # x2011 ; . Конечно, это очень неудобно
Во‑первых, слишком длинно: например, вместо РѕРґРЅРѕРіРѕ символа «в™­ » приходится вставлять семь: & # 9837 ; . Во‑вторых, документ СЃ подстановками неприятно просматривать Рё редактировать. Гораздо удобнее, РєРѕРіРґР° РІС‹ видите РІ документе непосредственно те символы, которые там должны быть, Р° РЅРµ РєРѕРґС‹ РІСЂРѕРґРµ & mdash ; или & # x3c0 ; .. Когда‑то давно разработчики веб‑страниц были вынуждены пользоваться такими РіСЂРѕРјРѕР·РґРєРёРјРё подстановками, потому что РєРѕРґРёСЂРѕРІРєРё UTF‑8 ещё РЅРµ существовало. РќРѕ теперь можно забыть как РїСЂРѕ подстановки, так Рё РїСЂРѕ старые РєРѕРґРёСЂРѕРІРєРё.. РћР±СЃСѓРґРёРІ преимущества UTF‑8, стоило Р±С‹ поговорить Рё Рѕ недостатках этой РєРѕРґРёСЂРѕРІРєРё
А недостатков, представьте себе, у неё нет. Есть только мифы и легенды, а также слухи и домыслы, которые распространяют замшелые консерваторы и махровые ретрограды. Много лет назад некоторые недостатки действительно имели место, но сейчас они канули в Лету.. Говорят, что у некоторых пользователей всё ещё установлены старые браузеры, которые не способны отображать страницы в UTF‑8. Это полная ерунда. Даже Internet Explorer 4 и Netscape 4, которыми уже давно никто не пользуется, прекрасно понимают UTF‑8
Рђ более современные браузеры — Рё подавно.. UTF‑8 — РІРѕРІСЃРµ РЅРµ «РЅРѕРІРѕРјРѕРґРЅР°СЏ» или «РјРѕР»РѕРґР°СЏ» РєРѕРґРёСЂРѕРІРєР°, РѕРЅР° успешно применяется более десяти лет. Если некий разработчик узнал Рѕ ней недавно или РЅРµ знает РґРѕ СЃРёС… РїРѕСЂ — это недостаток его квалификации, Р° РЅРµ РєРѕРґРёСЂРѕРІРєРё.. «РЇ поместил РЅР° сервер страницу РІ UTF‑8, Р° РѕРЅР° отображается кракозябрами»,- так РёРЅРѕРіРґР° жалуются начинающие разработчики. РќР° самом деле, такая проблема случается СЃ самыми разными кодировками Рё РЅРµ связана РЅРё СЃ какими специфическими особенностями UTF‑8. Р-десь неприятность РІ том, что страница сделана РІ РѕРґРЅРѕР№ РєРѕРґРёСЂРѕРІРєРµ, Р° сервер РІ заголовкаС..
HTTP сообщает РґСЂСѓРіСѓСЋ. Надо привести настройки сервера РІ соответствие СЃ действительной РєРѕРґРёСЂРѕРІРєРѕР№ веб‑страниц. Повторю, что это надо сделать РїСЂРё любой РєРѕРґРёСЂРѕРІРєРµ.. Говорят, что документы РІ UTF‑8 становятся РІ РґРІР° раза больше, чем РІ старых кодировках. Это РјРёС„ РёР· разряда «СЃР»С‹С€Р°Р» Р·РІРѕРЅ, РґР° РЅРµ знаю, РіРґРµ РѕРЅ». РќР° самом деле — раз РЅР° раз РЅРµ приходится
Например, если документ состоит только РёР· символов ASCII (латинские Р±СѓРєРІС‹, цифры, знаки препинания Рё С‚. Рґ.) — то РІ РєРѕРґРёСЂРѕРІРєРµ UTF‑8 РѕРЅ будет занимать СЂРѕРІРЅРѕ столько же байтов, сколько РІ любой РґСЂСѓРіРѕР№. Если документ содержит только Р±СѓРєРІС‹ СЂСѓСЃСЃРєРѕРіРѕ алфавита Рё никаких РґСЂСѓРіРёС… символов (что, согласитесь, бывает достаточно редко) — то РІ UTF‑8 РѕРЅ действительно станет РІ РґРІР° раза больше. Рђ если РІ нём, например, РїРѕСЂРѕРІРЅСѓ СЂСѓСЃСЃРєРёС… Рё арабскиС..
Р±СѓРєРІ — РІ UTF‑8 РѕРЅ будет РІ РґРІР° раза меньше, чем, например, РІ Windows‑1251 или Asmo‑708.. РўР° самая страница, которую РІС‹ сейчас читаете, РІ РєРѕРґРёСЂРѕРІРєРµ UTF‑8 занимает 35 килобайтов. Рђ если перевести её, например, РІ Windows‑1251, РѕРЅР° будет занимать 26 килобайтов. Кстати, сравнивая страницы, посмотрите, насколько легче читается РєРѕРґ РІ UTF‑8.. Рассуждая Рѕ «РІРµСЃРµ» веб‑страниц, следует отметить, что РѕСЃРЅРѕРІРЅСѓСЋ часть этого веса обычно составляет РЅРµ РєРѕРґ HTML, Р° изображения. (Рђ также, возможно, РґСЂСѓРіРёРµ объекты: ролики Flash, файлы JavaScript Рё С‚. Рґ.) Р’ результате даже РІ теС..
случаях, РєРѕРіРґР° документ РІ UTF‑8 увеличивается — это практически незаметно РІ общем объёме данных. По‑моему, «СЂР°Р·Р±СѓС…ание» РєРѕРґР° РЅР° несколько процентов — недорогая цена Р·Р° UTF‑8, СЃ которого РјС‹ начали.. Тем, кто заботится Рѕ «РІРµСЃРµ», следовало Р±С‹ РІ первую очередь выкинуть РёР· РєРѕРґР° устаревшие атрибуты HTML (РІСЂРѕРґРµ cellpadding или valign) Рё подстановки для тех символов, которым РѕРЅРё РЅРµ нужны (например, & mdash ; для длинного тире или & nbsp ; для неразрывного пробела). Действительно, РёРЅРѕРіРґР° РґРѕС…РѕРґРёС‚ РґРѕ маразма — некто упирается: «РќРµ Р±СѓРґСѓ делать страницы РІ UTF‑8, потому что РѕРЅРё РѕС‚ этого увеличиваются» — Р° сам РїСЂРё этом ваяет РєРѕРґ СЃ жуткими атрибутами Рё подстановками, который без РЅРёС… РјРѕРі Р±С‹ быть РІ пять раз короче.. Кто‑то скажет: «Р’СЃС‘ это хорошо, РїРѕРєР° РјС‹ имеем дело СЃРѕ статичными веб‑страницами
РќРѕ если РјС‹ пользуемся PHP Рё MySQL, РїСЂРѕ UTF‑8 лучше забыть». Это тоже неправда. Р’ древности, действительно, некоторые языки программирования Рё системы управления базами данных РЅРµ умели работать СЃ UTF‑8. РќРѕ сейчас РІСЃРµ современные языки программирования Рё базы данных находятся РІ прекрасных отношенияС..
СЃ этой РєРѕРґРёСЂРѕРІРєРѕР№. Рђ несовременными языками Рё базами пользоваться РЅРµ стóит: чем древнее ваши системы, тем проще РёС… взломать.. Однако РЅРµ забывайте Рѕ том, что РјРёСЂ постоянно меняется. Возможно, РІ будущем РІРѕР·РЅРёРєРЅСѓС‚ причины, которые заставят нас отказаться РѕС‚ UTF‑8 Рё перейти РЅР° какую‑то ещё более совершенную РєРѕРґРёСЂРѕРІРєСѓ. РљРѕРіРґР° это случится, СЏ обязательно вам сообщу.. РџСЂРё создании сайта Сѓ начинающиС..
веб-мастеров часто появляются вопросы: в какой кодировке делать сайт, чем отличается UTF-8 от windows-1251 и как ее прописывать в META Charset HTML-страницы сайта. Ответы на все эти вопросы в данной статье.. Кодировку можно представить в виде таблицы, состоящей из разных букв, цифр и других символов понятных человеку, которые закодированы определенным образом. Когда вы открываете текстовый файл, к которым относятся в том числе HTML-страницы, то компьютер считывает из заголовка файла в какой кодировке он был сохранен и выводит текст в соответствующей кодировке преобразовывая компьютерные данные в вид понятный человеку сопоставляя эти данные с таблицей кодировки
Если информация о кодировке из заголовка файла совпадает с кодировкой в которой сохранены данные в HTML-странице, то пользователь видит привычные ему буквы, цифры и другие символы. Если же есть несовпадение, то в результате пользователю выводится непонятный набор символов, особенно часто это происходит в старых почтовых программах. Если пользователь получил письмо с непонятными крякозябрами, то просто перебирая разные кодировки, обычно получается угадать и выбрать ту, в которой написано письмо, и в результате непонятный набор символов превращается в понятный человеку текст.. То же самое происходит и с HTML-страницами сайта. Если документ был сохранен, например, в кодировке UTF-8, а в самом документе прописан META-тег указывающий что это кодировка windows-1251, то браузер опять же будет сопоставлять сохраненные в файле данные с таблицей указанной ему кодировки и так как символы закодированы по-разному, то браузер выведет вместо привычного текста непонятный набор символов или же часть букв может быть в нормальном виде, а другие буквы или символы могут выводиться, например, в виде знаков вопроса
Р’СЃРµ выше сказанное относится РІ том числе Рё Рє отображению имен файлов.. Создавая новый документ РІ текстовом редакторе лучше сразу убедиться что выбрана нужная РєРѕРґРёСЂРѕРІРєР°. Современные редакторы позволяют преобразовать текст открытого документа РёР· РѕРґРЅРѕР№ РєРѕРґРёСЂРѕРІРєРё РІ РґСЂСѓРіСѓСЋ, Р° стандартный Блокнот позволяет выбрать РєРѕРґРёСЂРѕРІРєСѓ только РїСЂРё сохранении файла.. Р�Р· предыдущего пункта РІС‹ уже знаете что такое РєРѕРґРёСЂРѕРІРєР° Рё почему настолько важно правильно прописать ее РІ РєРѕРґРµ страниц сайта. Давайте теперь выясним какую РёР· множества РєРѕРґРёСЂРѕРІРѕРє лучше выбрать для будущего сайта. Поскольку самой распространенной Рё наиболее понятной РІ освоении всегда была операционная система Windows, то большинство веб-разработчиков создавали HTML-страницы РІ РєРѕРґРёСЂРѕРІРєРµ windows-1251 (ANSI), которая использовалась РїРѕ-умолчанию. РќРѕ windows-1251 поддерживает РЅРµ очень большое количество Р±СѓРєРІ Рё символов, Р° разработчики хотят использовать РІ СЃРІРѕРёС..
текстах различные стрелочки, сердечки, квадратики Рё РґСЂСѓРіРёРµ символы, РІ том числе есть необходимость совмещать слова РёР· разных языков РІ РѕРґРЅРѕРј документе, поэтому РЅР° смену ей уже давно пришла более расширенная UTF-8 Рё большинство разработчиков используют именно эту РєРѕРґРёСЂРѕРІРєСѓ.. Сайт, независимо РѕС‚ того является ли РѕРЅ просто набором статических HTML-документов или сложных динамических скриптов генерирующиС..
страницы РЅР° лету, размещается РЅР° веб-сервере, который также работает СЃ определенной РєРѕРґРёСЂРѕРІРєРѕР№. Р� если сервер выдает информацию РІ РѕРґРЅРѕР№ РєРѕРґРёСЂРѕРІРєРµ, Р° ваши страницы или скрипты сохранены РІ РґСЂСѓРіРѕР№ РєРѕРґРёСЂРѕРІРєРµ, то опять же РјРѕРіСѓС‚ быть проблемы СЃ отображением страниц РІ браузере пользователя. РњРЅРѕРіРёРµ хостинги позволяют менять настройки Рё выбрать РєРѕРґРёСЂРѕРІРєСѓ РІ соответствии СЃ той, которая используется РІ файлах сайта, через панель управления или же прописать ее РІ файле.htaccess, если РЅР° хостинге используется популярный веб-сервер Apache.. Практически РЅРё РѕРґРёРЅ современный сайт РЅРµ обходится без использования базы данных MySQL Рё РѕРЅР° также может стать источником проблем СЃ РєРѕРґРёСЂРѕРІРєРѕР№. Если файлы сайта сохранены РІ РѕРґРЅРѕР№ РєРѕРґРёСЂРѕРІРєРµ, Р° информация РІ базе данныС..
РІ РґСЂСѓРіРѕР№, то РЅР° странице та часть информации, которая выводится РёР· базы данных может отображаться РІ РІРёРґРµ РІСЃРµ тех же знаков РІРѕРїСЂРѕСЃРѕРІ или РґСЂСѓРіРёС… непонятных символов. Чтобы избежать проблем СЃ РєРѕРґРёСЂРѕРІРєРѕР№ РѕРЅР° должна быть одинаковой для веб-сервера, базы данных MySQL, РІ скриптах, РІ HTML-страницаС..
сайта Рё РІ META-теге, который прописывается РІ HTML-РєРѕРґРµ. Если есть проблемы СЃ отображением текста, то проверяйте РЅР° наличие проблемы РІСЃРµ выше перечисленное.. Чтобы сообщить браузеру Рё поисковым системам РІ какой РєРѕРґРёСЂРѕРІРєРµ сохранены страницы сайта РІ РёС… РєРѕРґРµ прописывается META Charset.. Р’ этой статье СЏ постараюсь поставить РІСЃРµ точки над «Рё» (Р° так же над «i») РІ РІРѕРїСЂРѕСЃРµ выбора РєРѕРґРёСЂРѕРІРєРё для создаваемой HTML-страницы.. РљРѕРіРґР° СЏ только начинал заниматься сайтостроительством Сѓ меня постоянно возникали проблемы РёР·-Р·Р° этих РєРѕРґРёСЂРѕРІРѕРє
Сохранишь HTML-страницу, выгрузишь РЅР° сервер, открываешь, бах, Р° там кракозябры. РќСѓ РІРѕС‚ Рё здравствуйте, приехали.. Р�ли РІ среде отладки (например, локальная среда разработки » «) РІСЃРµ нормально, Р° СЃ хостинга опять РѕРЅРё, кракозябры проклятые, нагло РЅР° меня смотрят.. РЎ движками сколько мучений было. Р’РґСЂСѓРі, непонятно почему, родные СЂСѓСЃСЃРєРёРµ Р±СѓРєРІС‹ превращаются РІ …. Сейчас РјС‹ СЃ этим делом РїРѕРґСЂРѕР±РЅРѕ разберемся Рё РІС‹ будете четко знать РІ какую РєРѕРґРёСЂРѕРІРєСѓ сохранять HTML-страницу Рё посредством каких инструментов .
Для укрепления нашего взаимопонимания определимся СЃ понятием РєРѕРґРёСЂРѕРІРєР° . Так РІРѕС‚, РєРѕРґРёСЂРѕРІРєР° — это таблица соответствия машинных РєРѕРґРѕРІ Рё символов алфавита. Есть какая-то последовательность машинных символов, которую умный компьютер, РІ соответствии СЃ выбранной РєРѕРґРѕРІРѕР№ таблицей, заменяет РЅР° понятные нам Р±СѓРєРІС‹.. Р’ 90-Рµ РіРѕРґС‹ прошлого века (древность какая, Р° СЏ как сейчас РїРѕРјРЅСЋ календарь 1991 РіРѕРґР° РЅР° стене) существовало 4-Рµ РєРѕРґРёСЂРѕРІРєРё для PC Рё еще РѕРґРЅР°, СЃРІРѕСЏ собственная, для Мака. Р�СЂРѕРЅРёСЏ СЃСѓРґСЊР±С‹ заключается РІ том, что РІРѕ РІСЃРµС..
этих кодировках символы латиницы ставились РІ соответствие машинным кодам РїРѕ РѕРґРЅРѕРјСѓ Рё тому же алгоритму, Р° РІРѕС‚ РїРѕ РїРѕРІРѕРґСѓ кирилицы каждая РёР· РєРѕРґРёСЂРѕРІРѕРє имела СЃРІРѕРµ собственное мнение.. Р’СЃСЏ эта путаница Рё привела Рє появлению кракозябров. Например, если слово «Р’РѕРїСЂРѕСЃ «, набранное РІ РєРѕРґРёСЂРѕРІРєРµ windows-1251, отобразить РєРѕРґРёСЂРѕРІРєРѕР№ KOI8-R, получится слово «Р±РќРћРџРќРЇ «.. Слава Богу, 90-Рµ РіРѕРґС‹ уже далеко позади Рё РёР· пяти бредокодировок осталось всего 2-Рµ нормальных. РќРѕ этого вполне достаточно, чтобы начинающий веб-мастер заблудился РІ РґРІСѓС..
соснах. Ничего, не переживайте, сейчас я вас выведу из этого леса!. На данный момент выбор для кодировки HTML-документа стоит между windows-1251 и utf-8. А теперь внимание: utf-8 гораздо богаче, мощнее и за ней будущее. Так что наши HTML-файлы мы будем сохранять именно в utf-8.. Обосную свои слова;). UTF-8 содержит в своей таблице соответствия такие знаки, как → ← ↓
Рђ РІ windws-1251 вместо этих символов РІРѕС‚ что: >. Р’ приведенном примере браузеру дается указание, что загруженный HTML-файл сохранен РІ РєРѕРґРёСЂРѕРІРєРµ utf-8 .. Если HTML-файл сохранен РІ РєРѕРґРёСЂРѕРІРєСѓ windows-1251, то:. Кстати, РїСЂРё перекодировке файлов РЅРµ забывайте изменять директивы РІ META-теге РЅР° актуальные. Dreamweaver, РїСЂРё изменении РєРѕРґРёСЂРѕРІРєРё, делает это автоматически, Р° РІ РґСЂСѓРіРёС… текстовыС..
редакторах вам нужно самим ставить РІ соответствие примененную РєРѕРґРёСЂРѕРІРєСѓ Рё директиву META-тега.. Полный HTML выглядит следующим образом (привожу его для понимания РІРѕРїСЂРѕСЃР° «РІ каком месте указывается META-тег СЃ директивой РєРѕРґРёСЂРѕРІРєРё» внимание РЅР° 4-СЋ строку):. Untitled Document РќСѓ Рё С‚.Рґ.. 2. РџСЂРё помощи файла.htaccess. Р�РЅРѕРіРґР° сервер насильно передает заголовки для загружаемыС..
HTML-файлов Рё сообщает браузеру РєРѕРґРёСЂРѕРІРєСѓ РїРѕ умолчанию. Р’ этом случае браузер РЅРµ обращает внимания РЅР° директивы РІ META-теге, Р° отображает HTML-файл РІ той РєРѕРґРёСЂРѕРІРєРё, которую сообщил сервер. Чтобы файл загружалсяв той РєРѕРґРёСЂРѕРІРєРµ, которая нужна вам (часто хостинг насильно указывает РєРѕРґРёСЂРѕРІРєСѓ windows-1251), РІ РєРѕСЂРЅРµ хостинг-директории создается файл СЃ именем «.htaccess».. Файл этот предназначен для дополнительной конфигурации сервера. Действие.htaccess-директив распространяется РЅР° РІСЃРµ файлы Рё подкаталоги, которые находятся РІ том каталоге, РєСѓРґР° РІС‹ сохранили файл.htaccess.. Создать этот файл можно, например, РІ Total Commander-Рµ, нажав горячее сочетание клавиш Shift+F4 Рё указав РёРјСЏ создаваемому файлу .htaccess . Далее РІ текстовом редакторе указываются директивы дополнительныС..
настроек РєРѕРґРёСЂРѕРІРєРё РїРѕ умолчанию.. Для HTML-файлов РІ РєРѕРґРёСЂРѕРІРєРµ utf-8 РІ.htaccess нужно написать РѕРґРЅСѓ строку:. Для HTML-файлов РІ РєРѕРґРёСЂРѕРІРєРµ Windows-1251 :. Если ваш хостинг хитро-мудрый Рё РЅРµ обращает внимания РЅР° эти директивы, то можно попробовать:. Charsetdisable on AddDefaultCharset Off. Если Рё это РЅРµ дало результата, то просто спросите Сѓ своего хостера, чего вам делать, чтобы отключить РєРѕРґРёСЂРѕРІРєСѓ РїРѕ умолчанию:). Р’СЃРµ это зависит РѕС‚ конкретныС..
настроек сервера Сѓ хостинг-провайдера.. 3. PHP-инструкция, указывающая РєРѕРґРёСЂРѕРІРєСѓ РїРѕ умолчанию. Р’ файле, который нужно отобразить РІ желаемой РєРѕРґРёСЂРѕРІРєРµ, РЅРµ смотря РЅР° настройки сервера хостинг-провайдера, РІ самом начале указывается директива СЃ php-РєРѕРґРѕРј:. Этот php-РєРѕРґ отправит заголовок сервера СЃ указанием РєРѕРґРёСЂРѕРІРєРё РїРѕ умолчанию для браузера. Р’ приведенном примере, для отображения страницы, будет применяться РєРѕРґРёСЂРѕРІРєР° utf-8.. Против такого лома, обычно, приемов РІ настройкаС..
сервера хостинг-провайдера РЅРµ остается.. Хочу заметить, что для обработки php-инструкций сервером, html-файл должен иметь расширение .php (например index.php).. Есть еще РІРѕРїСЂРѕСЃС‹ РїРѕ кодировкам? Пишите РІ комментарии. Нужно решить эти проблемы раз Рё РЅР° всегда 🙂. Перед создателем сайтов всегда встает проблема: РІ какой РєРѕРґРёСЂРѕРІРєРµ создавать проект. Р’ русскоязычном интернете используются РґРІРµ РєРѕРґРёСЂРѕРІРєРё:. UTF-8 (РѕС‚ англ
Unicode Transformation Format ) — РІ настоящее время распространённая РєРѕРґРёСЂРѕРІРєР°, реализующая представление Юникода, совместимое СЃ 8-битным кодированием текста.. Windows-1251 (или cp1251 ) — набор символов Рё РєРѕРґРёСЂРѕРІРєР°, являющаяся стандартной 8-битной РєРѕРґРёСЂРѕРІРєРѕР№ для всех СЂСѓСЃСЃРєРёС… версий Microsoft Windows.. UTF-8 более перспективна. РќРѕ Сѓ любой вещи есть недостатки. Р� решение РѕР± использовании какой-то РєРѕРґРёСЂРѕРІРєРё только потому, что РѕРЅР° перспективна, без учета РјРЅРѕРіРёС..
РґСЂСѓРіРёС… факторов, РЅРµ представляется правильным. Выбор будет оптимальным только тогда, РєРѕРіРґР° РѕРЅ полностью учитывает РІСЃРµ нюансы конкретного проекта. Другое дело, что предусмотреть РІСЃРµ нюансы — само РїРѕ себе весьма РЅРµ просто.. РњС‹ считаем, что использование UTF-8 предпочтительнее, РЅРѕ решать что выбрать — это дело разработчика проекта. Рђ для облегчения этого выбора используйте сравнительную таблицу особенностей обеих РєРѕРґРёСЂРѕРІРѕРє.
Общий порядок действий:. 1. Перекодировать всю базу данных в UTF-8 (вероятнее всего придётся обращаться за помощью к администратору сервера).. 2. Перекодировать все файлы сайта в UTF-8 (можно сделать своими силами).. 3
Р’ файл /bitrix/php_interface/dbconn.php добавить строки:. 4. Р’ файл /.htaccess добавить строки:. Php_value mbstring.func_overload 2 php_value mbstring.internal_encoding UTF-8. Перекодировать РІСЃРµ файлы сайта РІ UTF-8 (второй РїСѓРЅРєС‚) можно выполнив команду через SSH РІ корневой папке сайта:. Find . -name «*.php» -type f -exec iconv -fcp1251 -tutf8 -o /tmp/tmp_file \; -exec mv /tmp/tmp_file \;
Р-адаём набор символов. Нужно добавить РЅР° каждую страницу (или РІ шаблон шапки) специальный мета-тег, сообщающий браузеру Рѕ том, какой набор символов ему использовать для отображения текстов. Тег этот стандартный Рё выглядит обычно так:. Надо вставить его РІ раздел — лучше РІ самое начало, сразу после открывающего :. Обычно первых РґРІСѓС… вариантов достаточно Рё браузеры отображают текст как надо
РќРѕ СЃ некоторыми РёР· РЅРёС… РјРѕРіСѓС‚ быть проблемы Рё поэтому можно прибегнуть Рє помощи файла.htaccess .. Для этого РІ нём нужно прописать такую строчку:. Р’РѕС‚ Рё РІСЃС‘. Если РІС‹ примените последовательно 3 этих СЃРїРѕСЃРѕР±Р° задания РєРѕРґРёСЂРѕРІРєРё РЅР° своём проекте, то вероятность того, что РІСЃС‘ будет отображено как надо , близка Рє 100 %.. Если РІС‹ зашли РЅР° веб-страницу, видите «РєСЂР°РєРѕР·СЏР±СЂС‹» Рё хотите увидеть нормальный текст, то тут только РґРІР° пути:
Рљ счастью, практически РІСЃРµ современные веб-проекты делаются РІ РєРѕРґРёСЂРѕРІРєРµ UTF-8, которая является «СѓРЅРёРІРµСЂСЃР°Р»СЊРЅРѕР№» для разных алфавитов Рё поэтому РІСЃС‘ менее Рё менее вероятно увидеть эти непонятные символы РІ Р�нтернет.. Р-дравствуйте, уважаемые читатели моего блога. Сегодня РјС‹ РїРѕРіРѕРІРѕСЂРёРј СЃ вами РїСЂРѕ РєРѕРґРёСЂРѕРІРєСѓ. Если РІС‹ читали РјРѕСЋ статью Рѕ том, то знаете, что любой документ РІ интернете хранится РЅРµ РІ том РІРёРґРµ, РІ каком РјС‹ привыкли его видеть. РћРЅ записан РїСЂРё помощи непонятных человеку символов Рё знаков
РЎ текстом РІСЃРµ точно также.. Существует несколько РєРѕРґРёСЂРѕРІРѕРє, Р° потому, РёРЅРѕРіРґР° увидев непонятные символы РїСЂРё открытии РєРЅРёРіРё РІ мобильном приложении или запилив статью РЅР° сайт, РІС‹, поменяв РєРѕРµ-какие значения РІ настройках, увидите привычный глазу алфавит.. РљРѕРґРёСЂРѕРІРєР° windows-1251 – что это такое, какое значение РѕРЅР° имеет РїСЂРё создании сайта, какие символы Р±СѓРґСѓС‚ доступны Рё является ли РѕРЅР° лучшим решением РЅР° сегодняшний день? РћР±Рѕ всем этом РІ сегодняшней статье. Как всегда, простым языком, максимально понятно Рё СЃ минимальным количеством терминов.. Любой документ РЅР° компьютере или РІ интернете, как СЏ уже сказал, хранится РІ РІРёРґРµ двоичного РєРѕРґР°. Рљ примеру, если РІС‹ используете РєРѕРґРёСЂРѕРІРєСѓ ASCII, то Р±СѓРєРІР° «Рљ» будет записана как 10001010, Р° windows 1251 РїРѕРґ этим числом скрывается СЃРёРјРІРѕР» – Р‰. Р’ итоге, если браузер или программа обратится Рє РґСЂСѓРіРѕР№ таблице Рё считает вместо ASCII РєРѕРґС‹ windows 1251, то читатель СѓРІРёРґРёС‚ совершенно непонятные ему СЃРёРјРІРѕР».
Логичен вопрос, нафига было придумывать множество таблиц с кодами? Дело в том, что помимо русского алфавита существует еще и английский, немецкий, китайский. По некоторым подсчетам, существует около 200 000 символов. Хотя, я не очень доверяю этой статистике, вспоминая про японский.. Не забывайте, что для заглавной и строчной буквы нужно придумать свой код, есть запятые, тире и так далее.. Чем больше в таблице символов, тем длиннее код каждого из них, а значит и вес документа становится больше.. Представьте, если бы одна книга весила 4 Гб! Она бы очень долго загружалась, занимала все свободное место на компьютере. Решение о скачивании представлялось бы делом нелегким.
Если вспомнить о сайтах, то вообще страшно подумать, что бы произошло. Каждая страничка открывалась даже на скоростном оптоволокне по часу с лишним! Думаю, мобильные телефоны можно было бы смело выкидывать. Пользоваться ими на улице даже с 4G? Сомневаюсь.. По этим причинам каждый программист в свое время старался придумать свою таблицу символов. Чтобы было удобно для использования и вес сохранялся оптимальным.. Microsoft, к примеру, для русскоязычного сегмента создали windows-1251. В ней, конечно же, есть свои достоинства и недостатки
Как и у любого другого продукта.. Сейчас уже, лишь 2% всех страниц в интернете написано на 1251. Большинство веб-мастеров используют UTF-8. Почему так?. UTF-8, в отличие от windows-1251 универсальная кодировка, в ней содержатся буквы различных алфавитов
Существует даже UTF-128, где есть вообще все языки – теулу, суахили, лаосский, мальтийский и так далее.. UTF-8 победнее, буквы занимают в разы меньше места и занимают всего один байт памяти, как и в 1251. В УТФ есть редкие символы из других языков или специальные символы. Они-то и весят по 5-6 байтов, но в документе используются крайне редко.. Эта кодировка более продумана, а потому ее использует большинство приложений по умолчанию. То есть, если вы не указываете программе, какую кодировку вы используете, то первым делом он проверит именно UTF-8 .
РљРѕРіРґР° РІС‹ создаете html документ для сайта, то указываете браузерам РЅР° какую таблицу РёРј обращать внимание РїСЂРё расшифровке записей.. Для этого необходимо вставить РІ тег head следующие данные. После символов «charset=» идет либо утф, либо РІРёРЅРґРѕРІСЃ, как РІ примере ниже.. Если РІ дальнейшем РІС‹ захотите что-то поменять Рё вставить фразу РЅР° албанском, используя эту таблицу расшифровок, то ничего РЅРµ получится, ведь этого языка РєРѕРґРёСЂРѕРІРєР° РЅРµ поддерживает. UTF‑8 без проблем позволит вам это сделать.. Если вас заинтересовало правильное создание сайта, то СЏ РјРѕРіСѓ порекомендовать вам РєСѓСЂСЃ Михаила Русакова » Создание Рё Раскрутка сайта РѕС‚ Рђ РґРѕ РЇ «.. РћРЅ содержит РІ себе очень РјРЅРѕРіРѕ – 256 СѓСЂРѕРєРѕРІ, затрагивающиС..
, JavaScript, и XML. Помимо языков программирования вы сможете понять как монетизировать сайт, то есть скорее и больше получать прибыль. Один из немногих курсов, в котором было бы так подробно разъяснено все, что нужно.. Сам я вот уже год обучаюсь в школе блоггеров Александра Борисова . Это занимает в разы больше времени, конца и края пока не видно, но зато не менее исчерпывающе и дисциплинирует. Мотивирует продолжать разработку.
Ну а если возникают вопросы, не нужно искать по интернету. Всегда есть грамотный наставник.. Что-то я отошел от темы. Давайте вернемся к кодировкам.. Когда речь идет о php, все вообще страшно. Я уже рассказывал про базы данных, они используются для ускорения работы сайта. Обычно, вы к ним не обращаетесь, но когда появляется необходимость в переносе сайта становится не по себе.
Сложности случаются у всех, не важно какой у вас опыт работы, стаж и выслуга лет. Некоторые странички в базе могут содержать в себе все доступные символы для виндовс-1251, другие, к примеру, в шаблонах страниц, в другой кодировке.. Пока не нужен перенос все работает и функционирует, хоть и не совсем правильно. Но после переезда начинаются неприятности. В идеале вы должны использовать либо только УТФ, либо виндовс-1251, но по факту всегда и у всех случаются вот такие недочеты.
Чтобы расшифровка согласовалась необходимо вписать РєРѕРґ mysql_query(«SET NAMES cp1251″). Р’ этом случае преобразование будет осуществлять РїРѕ РґСЂСѓРіРѕРјСѓ протоколу – cp1251.. Если РЅР° сайте РІС‹ настойчиво решили использовать именно 1251, то вам следует найти или создать файл htaccess. РћРЅ отвечает Р·Р° настройки конфигурации. Р’ него придется добавить еще три строчки, чтобы РІСЃРµ сошлось.. DefaultLanguage ru; AddDefaultCharset windows-1251; php_value default_charset «cp1251″. РЇ РІСЃРµ же настоятельно рекомендую вам задумать Рѕ использовании UTF-8
Он более популярен, прост и богат. Какие бы решения вы не приняли сейчас, важно, чтобы впоследствии можно было все исправить. Добавить англоязычную версию сайта на этой кодировке будет в разы проще. Ничего не нужно исправлять.. Решение остается за вами. Подписывайтесь на рассылку, чтобы узнавать как можно быстрее , где учиться, чтобы не повторять чужих ошибок, а также какие блоггеры получают больше посетителей.
До новых встреч и удачи в ваших начинаниях.. Причиной разобраться в том, как же работает UTF-8 и что такое Юникод заставил тот факт, что VBScript не имеет встроенных функций работы с UTF-8. А так как ничего рабочего не нашел, то пришлось писть/дописывать самому. Опыт на мой взгляд полезный в любом случае
Для лучшего понимания начну СЃ теории.. Р’ этой статье СЏ постараюсь поставить РІСЃРµ точки над «Рё» (Р° так же над «i») РІ РІРѕРїСЂРѕСЃРµ выбора РєРѕРґРёСЂРѕРІРєРё для создаваемой HTML-страницы.. РљРѕРіРґР° СЏ только начинал заниматься сайтостроительством Сѓ меня постоянно возникали проблемы РёР·-Р·Р° этих РєРѕРґРёСЂРѕРІРѕРє. Сохранишь HTML-страницу, выгрузишь РЅР° сервер, открываешь, бах, Р° там кракозябры. РќСѓ РІРѕС‚ Рё здравствуйте, приехали.. Р�ли РІ среде отладки (например, локальная среда разработки «Р”енвер») РІСЃРµ нормально, Р° СЃ хостинга опять РѕРЅРё, кракозябры проклятые, нагло РЅР° меня смотрят.
С движками сколько мучений было. Вдруг, непонятно почему, родные русские буквы превращаются в …. Сейчас мы с этим делом подробно разберемся и вы будете четко знать в какую кодировку сохранять HTML-страницу и посредством каких инструментов.. Для укрепления нашего взаимопонимания определимся с понятием кодировка. Так вот, кодировка — это таблица соответствия машинных кодов и символов алфавита
Есть какая-то последовательность машинных символов, которую умный компьютер, в соответствии с выбранной кодовой таблицей, заменяет на понятные нам буквы.. В 90-е годы прошлого века (древность какая, а я как сейчас помню календарь 1991 года на стене) существовало 4-е кодировки для PC и еще одна, своя собственная, для Мака. �рония судьбы заключается в том, что во всех этих кодировках символы латиницы ставились в соответствие машинным кодам по одному и тому же алгоритму, а вот по поводу кирилицы каждая из кодировок имела свое собственное мнение.
Р’СЃСЏ эта путаница Рё привела Рє появлению кракозябров. Например, если слово «Р’РѕРїСЂРѕСЃ», набранное РІ РєРѕРґРёСЂРѕРІРєРµ windows-1251, отобразить РєРѕРґРёСЂРѕРІРєРѕР№ KOI8-R, получится слово «Р±РќРћРџРќРЇ».. Слава Богу, 90-Рµ РіРѕРґС‹ уже далеко позади Рё РёР· пяти бредокодировок осталось всего 2-Рµ нормальных. РќРѕ этого вполне достаточно, чтобы начинающий веб-мастер заблудился РІ РґРІСѓС… соснах. Ничего, РЅРµ переживайте, сейчас СЏ вас выведу РёР· этого леса!. РќР° данный момент выбор для РєРѕРґРёСЂРѕРІРєРё HTML-документа стоит между windows-1251 Рё utf-8
Рђ теперь внимание: utf-8 гораздо богаче, мощнее Рё Р·Р° ней будущее. Так что наши HTML-файлы РјС‹ будем сохранять именно РІ utf-8.. РћР±РѕСЃРЅСѓСЋ СЃРІРѕРё слова ;). UTF-8 содержит РІ своей таблице соответствия такие знаки, как в†’ в†ђ ↓↑. Рђ РІ windws-1251 вместо этих символов РІРѕС‚ что: >. Возвращаясь Рє избитой проблеме СЃ кодировками СЂСѓСЃСЃРєРёС..
Р±СѓРєРІ, хотелось Р±С‹ иметь РїРѕРґ СЂСѓРєРѕР№ некий единый справочник или руководство, РІ котором можно найти решения различных сходных ситуаций. Р’ СЃРІРѕС‘ время сам перелопатил множество статей Рё публикаций, чтобы находить причины ошибок. Р-адача этой публикации — сэкономить время Рё нервы читателя Рё собрать воедино различные причины ошибок СЃ кодировками РІ разработке РЅР° Java Рё JSP Рё СЃРїРѕСЃРѕР±С‹ РёС… устранения.. Варианты решения РјРѕРіСѓС‚ быть РЅРµ единственными, охотно добавлю предложенные читателем, если РѕРЅРё Р±СѓРґСѓС‚ рабочими.
�так, поехали. . 1. Проблема: при получении разработанной мной страницы браузером весь русский текст идёт краказябрами, даже тот, который забит статически. Причина: браузер неверно определяет кодировку текста, потому что нет явного указания. Решение: явно указать кодировку: a) HTML: добавляем тэг META в хидер страницы:. б) XML: указываем кодировку в заголовке:
РІ) JSP — задаём тип контента РІ заголовке:. Рі) JSP — задаём РєРѕРґРёСЂРѕРІРєСѓ возвращаемой страницы. Рґ) Java — устанавливаем хидер ответа:. 2. Проблема: написанный РІ JSP-странице статический СЂСѓСЃСЃРєРёР№ текст почему-то идёт краказабрами, хотя РєРѕРґРёСЂРѕРІРєР° страницы задана. Причина: статический текст был написан РІ РєРѕРґРёСЂРѕРІРєРµ, отличной РѕС‚ заданного странице. Решение: изменить РєРѕРґРёСЂРѕРІРєСѓ РІ редакторе (например, для AkelPad нажимаем «РЎРѕС…ранить как» Рё выбираем нужную РєРѕРґРёСЂРѕРІРєСѓ).
3. Проблема: получаемый из запроса текст идёт кракозябрами. Причина: кодировка запроса отличается от используемой для его обработки кодировки. Решение: установить кодировку запроса или перекодировать в нужную. а) Java, со стороны отправителя не задана нужная кодировка — перекодируем в нужную:. Примечание: кодировка ISO-8859-1 устанавливается по умолчанию, если не была задана другая. б) Java, со стороны отправителя задана нужная кодировка — устанавливаем кодировку запроса:
4. Проблема: отправленный GET-параметром СЂСѓСЃСЃРєРёР№ текст РїСЂРё редиректе РїСЂРёС…РѕРґРёС‚ кракозябрами. Причина: упаковка СЂСѓСЃСЃРєРѕРіРѕ текста РІ URI РїРѕ умолчанию идёт РІ ISO-8859-1. Решение: упаковать текст РІ нужной РєРѕРґРёСЂРѕРІРєРµ вручную. Р°) JSP, URLEncoder:. 5. Проблема: текст РёР· базы данныС..
читается кракозябрами. Причина: кодировка текста, прочитанного из базы данных, отличается от кодировки страницы. Решение: установить соответствующую кодировку страницы, либо перекодировать полученные из базы данных значения. а) Java, перекодирование считанной в db_string базы данных строки:. 6
Проблема: текст записывается в базу данных кракозябрами, хотя на странице отображается правильно. Причина: кодировка записываемой строки отличается от кодировки сессии работы с базой данных, либо от кодировки базы данных (стоит помнить, что они не всегда совпадают). Решение: установить необходимую кодировку сессии или перекодировать строку. а) Java, перекодирование записываемой строки db_string в кодировку сессии или базы данных:. б) Java, MySQL, настройка параметров подключения в строке dburl, передаваемой функции коннекта:
РІ) MySQL, настройка параметров подключения РІ XML-описателе контекста, добавляем атрибут Рє тегу \ :. Рі) MySQL, прямая установка РєРѕРґРёСЂРѕРІРєРё сессии вызовом SET NAMES (connect — объект подключения Connection):. 7. Проблема: если ничего РЅРµ помогло… Решение: всегда остаётся самый «С‚опорный» метод — РїСЂСЏРјРѕРµ перекодирование. Р°) Для известной РєРѕРґРёСЂРѕРІРєРё источника: [String MyValue = new String(source_string.getBytes(«utf-8″),»cp1251»);] . Р±) Для параметра запроса: [String MyValue = new String(request.getParameter(«MyParam»).getBytes(request.getCharacterEncoding()),»cp1251″);] . Дополнение, или что нужно знать:
1. Кодировки базы данных и сессии подключения могут различаться, в зависимости от конкретной СУБД и драйвера. К примеру, при подключении к MySQL стандартным драйвером com.mysql.jdbc.Driver без явного указания кодировка сессии устанавливалась в UTF-8, несмотря на другую кодировку схемы БД. 2. Кодировка упаковки строки запроса в URI по умолчанию устанавливается в ISO-8859-1. С подобным можно столкнуться, например, при передаче явно заданного текста в редиректе с одной страницы на другую
3. Взаимоотношения кодировок страницы, базы данных, сессии, параметров запроса и ответа не зависят от языка разработки и описанные для Java функции имеют аналоги для PHP, Asp и других.. Примечание: восстановить ссылки на источники нет возможности, все примеры взяты из собственного кода, хотя когда-то так же выискивал их по многочисленным форумам.. Надеюсь, этот небольшой обзор поможет начинающим веб-программистам сократить время отладки и сберечь нервы.. Метатеги используются для хранения информации предназначенной для браузеров и поисковых систем
Например, механизмы поисковых систем обращаются Рє метатегам для получения описания сайта, ключевых слов Рё РґСЂСѓРіРёС… данных.. Среди разработчиков сайтов существует мнение, что правильно написанные метатеги позволяют подняться Рє верхним строчкам поисковых серверов. РќР° самом деле это РЅРµ так, РЅР° РѕРґРЅРёС..

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *