Добрый вечер всем на wmbn.ru! Сегодня хотелось бы поговорить об одной незаметной, но во многих случаях важной части при создании блога — его кодировки текста. Возможно многие замечали, особенно при работе на локальных серверах Denwer или его альтернативе XAMPP за место текста появляются непонятные символы, которые, как предполагалось должны буквами или цифрами. Такое можно и заметить на различных сайтах интернета, конечно редко, но тоже бывает. Причина тому не правильно настроенный сервер, сам движок сайта (в частности касается WordPress или его базы данных MySQL, хотя больше второе) или в настройках браузера по умолчанию выставлена определенная кодировка, по причине того, что некоторый сайт на странице отображался некорректно и его просто поменяли, забыв выставить первоначальные значения, то есть настройки.

Как поменять кодировку текста

Ниже поговорим по подробнее что такое кодировка текста, какие бывают виды, их назначение и как их изменить. Так же речь пойдет о сервисах, которые помогут разобрать и перевести символы в буквы письма, пришедшее по электронной почте, ICQ или другого клиента. Еще хотелось бы заметить, что видов кодировок текста приличное количество, в особенности это касается операционных систем, стран и конкретных людей, которые создали для себя (под свою клавиатуру) свои символы, что возможно ускоряло его труды. Интересно было рассмотреть клавиатуру, в которой вы сами добавляете те символы, которые хотите видеть на экране, то есть создаете примерно свою кодировку или разметку для устройства.

Что такое кодировка текста, ее причины появления

Кодировку иногда называют набором символов, которая характерна для определенного алфавита — то есть для каждого символа есть свой номер. Только номера обычно у многих наборов символов совпадают и по этой причине можно наблюдать, когда обычный казалось текст превращается в сплошной хаос непонятных символов. Кодировки появились еще тогда, когда стали использовать первые компьютеры, в которые вводились данные с помощью клавиатуры (кстати, буквы расположены по клавишам с учетом частоты их использования). Больше никак не придумаешь, как присвоить определенный номер, за которым закреплен символ.

Но что интересно, многие программисты создавали свои виды кодировок, так как не было у них согласия использовать один код, а если учитывать их по странам и языкам, то тут о стандартизации говорить нет смысла — ну никак не сопоставить английский (а лучше китайский) алфавит с русским. Благодаря такому разграничению появлялись таблицы символов, в которых хранились свои буквы, знаки и цифры.

Когда начали появляться первые универсальные операционные системы, к каждой создавалась своя таблица символов — для Windows одно, для Unix другое, а для MAC третье, хотя она является одной из веток замечательного Unix. Кто-то пытался создать свой стандарт, но создали не одну кодировку для текста, а множество, что тоже повлияло на общее их количество.

Кодировки текста

На данный момент более популярными считаются кодировки UTF (чаще всего используется UTF-8), он же Юникод и Windows-1251, который создан операционной системой Windows специально для кириллических символов, реже пользуются KOI-8. Однако существуют и другие виды кодировок — ISO 8859, MAC, ASCII, ISCII, VISCII, которые имели еще и множество версий. Так как я изучал в школе кодировки на примере UTF (Юникод) и Windows, то про них расскажу по подробнее.

UTF (Юникод) была задуманна для того, чтобы создать универсальную таблицу символов, в которой проблемы непонятных символов (квакозябр) были бы решены. Если судить по старой тетради, то они попытались сделать так, чтобы одна часть символов не изменялась в системе (касалось больше цифр и распространенных знаков). Раз она стала настолько распространенной, то задумка по созданию Юникод удалась. UTF имеет несколько версий, основных 6, которые различаются количеством символов и способом их представления.

Windows кодировки были созданы, когда появилась первые версии Windows 3.x (3.1, 3.11 и т.д.), до этого была DOS, которая на тот момент пользовалась популярностью. Однако из-за массовости продукта было принято решение по созданию новой таблицы символов для текста каждой страны, в которые поставлялась Windows 3.x. Иногда Windows-1251 пишут win-1251 или cp1251.

Кодировка текста в HTML — настройка страницы и в параметрах браузера Opera, Google Chrome и Firefox

Приступим к коду HTML и как кодировка там прописывается. Изначально вид кодировки задает сервер (хостинг), на котором расположен ваш сайт — обычно это UTF-8 и Windows-1251, про которые я рассказал (что сам знал) выше. Поэтому нужно заранее узнать какую таблицу использует сервер и в настройках движка сайта выставить именно их, или придется каждый раз задавать для браузера кодировку вручную, что очень не приятно.

С такой проблемой я столкнулся, когда тестировал ModX и Drupalлокальный сервер наотрез отказывался понимать кодировку страниц установки данных панелей. Однако по умолчанию поставив для них из win-1251 на UTF-8 все сразу заработало (но не думаю, что изменив их я получу желаемый результат на других браузерах). Можно посмотреть исходный код для каждого движка и поменять все там, но такой вариант не всегда будет приемлемым — зачем искать сложные пути решения одного вопроса, когда сделав пару простых действий получим тот же результат.

Неправильная кодировка текста

И чтобы избежать таких проблем используйте те программы, движки и прочие дополнения, которые предложит вам хостинг в каталоге, так как они уже изначально настроены под особенности сервера и проблем с непонятными символами из-за кодировки можно избежать. Если же нужно поменять кодировку текста, при этом не тронув настройки браузера или сервера, то нужно в мета тегах прописать тот вид кодировки, который используется на сервере.

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

В настройки хостинга я не лез, так как у меня уже все настроено по умолчанию и WordPress я устанавливал из каталога приложений. На XAMPP настроек так же не производил, а лишь поменял кодировку страницы по умолчанию. Делается это очень просто — если используется простой html шаблон (вы скорее всего как и я мучаете сервер самописными PHP кодами), то в файле index.php (index.html для статичных html страниц) нужно указать кодировку, причем вставив код до закрывающего тега head:

<meta http-equiv="content-type" content="text/html; charset=Windows-1251">
</head>
<body>

В данном случае мы окончательно зададим браузеру воспринимать страницу так, что она написана на Windows-1251. Но тут стоит учесть — никогда не пишите в мета тег кодировку, на которую не настроен используемый сервер (хостинг), иначе желаемого результата не добиться. Причина в том, что сервера умеют автоматически определять в каком виде представить текст пользователю, переделав исходный текст. Но если добавить строку с мета тегом, то он не сможет правильно сопоставить символы в таблицы и данный текст уже не будет читаться в окне браузера, и возможно в настройках уже кодировку не изменить.

Еще один пример неправильного определения символов — использование разнообразных шрифтов для сайта. Чревато это тем, что когда мы задаем по умолчанию шрифты в CSS, то невольно подбираем более красивый и читаемый. Если же окажется так, что используемый шрифт отсутствует в системе, то он будет заменен на похожий, который не всегда оказывается русифицированным. Хотя это лишь предосторожность, но ее стоит учесть и не заполнять слова начертаниями, которые не всегда могут оправдать свое использование.

Неправильно подобранная кодировка текста

Если же вдруг вы попали на такую страницу и по какой-то причине она для вас важна и нужен исходный текст, то просто переключите кодировку в настройках браузера. В Google Chrome это делается следующим образом — в меню рядом со строкой ввода адреса и поиска найдите значок, который расположен в самом краю справа. Щелкнув по нему, перейдите в пункт Инструменты, затем кодировка и выставьте его на Определять Автоматически. Браузер постарается самостоятельно подобрать для текста набор символов, но если этого не произойдет, то придется выбирать каждый (в первую очередь UTF и Windows).

В браузере Mozilla FireFox нужно на панели меню выбрать Вид, затем Кодировка. Список включает в себя много пунктов, который разделен на дополнительные подпункты, что мне показалось удобным для выбора определенной кодировки: Автоопределение — выбрал свой язык, остальное браузер постарается подобрать сам, из Дополнительного списка можно поставить совсем другой набор символов, который также разделен по областям. А ниже 4 стандартные кодировки, которые наиболее часто используются в России, хотя их список можно настроить.

В популярном браузере рунета Opera все это меняется в меню Страница — Кодировка, и среди большого списка, разделенного по определенным категориям — языки и страны (области).

Онлайн сервисы для изменения кодировки текста

Если же пришло какое-то письмо или текст на странице отображается символами, который не поддается стандартным способам его преобразования, то можно воспользоваться различными сервисами, которые автоматически определяют кодировку текста и преобразуют ее в читаемую в онлайне.

Первый сервис Универсальный Декодер — конвертер кириллицы. Принцип работы довольно простой:

  1. Скопируйте текст с непонятными символами (квакозябрами) в первый блок;
  2. Ниже укажите начальную кодировку текста — можно определить ее автоматически или задать вручную, если уже известно какая таблица символов была использована для него;
  3. Получаем результат во втором блоке текста, который по идее должен быть читаемым;

Второй сервис Мидив отличается от первого только оформлением, а в остальном все точно также — вводим исходный текст в первый блок, определяем для него кодировку (автоматически или вручную), получаем готовый текст — все это тоже в режиме онлайн.

Единственный недостаток, который я заметил в обоих сервисах — если текст прислать с Unix системы (конец строки поставить для данной системы), то смысл определять кодировку текста теряется, так как еще не один из подопытных текстов не смог как автоматически, так и вручную перекодироваться в читаемую.

И последний способ изменения кодировки текста (скорее избежать проблем) — использовать программу Notepad. Ее отличительная особенность — она может изменить конец строки для любого текста (из Unix в Windows) и задать стандартную кодировку текста. Такой нюанс стоит учитывать при верстке кода, особенно HTML.

На этом все, если к вам попался текст, который содержит в себе непонятно что, то для начала поработайте с ним, изменив кодировку в различных сервисах интернета. Если же это не помогло, то попросите отправителя прислать вам вариант в другом формате.

Комментариев: 5

  1. Orcinus Orca

    Ех не застали вы когда на досе cp866, на линухе koi-8r, у соседа на линухе koi-8u, в универе на 95 винде win-1251, а знакомые евреи присылают инфу в win-1252 (это не опечатка именно 1252). Особый зоопарк в почтовом ящике. Иногда чтение писем под макинтошем представляло из себя чтение шифровок из центра. А в 1992 году еще и UTF-8 придумали. Какой ещё неведомый стандарт выйдет непонятно.

    1. writer

      Мне кажется, что на UTF остановятся, пока выходят просто новые версии, а не новая таблица или стандарт ISO (надеюсь ГОСТ Р не придумают) , что, наверно, должно радовать.

    2. West Blogger

      Оркинус, представляю :О

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

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>