Как работать с кодировкой текста ASCII (Windows 1251, CP866, KOI8-R) и Юникод (UTF 8, 16, 32)

История появления современных кодировок начинается с ASCII (American Standard Code for Information Interchange) она является базовой для латиницы. С ее помощью описываются первые 128 знаков – латинских букв, арабских цифр и знаков препинания, служебных символов.

Они и стали в Аски стандартом и еще и для других видов кодировок. ASCII является основой для развития всех современных кодировок и среди них — Windows 1251, UTF 8 или юникод.

Расширенная Аски

Существуют также и расширенные версии ASCII. Речь идет о кодировках CP866 и KOI8-R с псевдографикой. В этих версиях кроме 128 символов, появились и 256 значений. Проще говоря в кодировки можно будет добавлять и знаки букв определенного языка.

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

Charset Windows 1251 представляет собой современную версию ASCII. Она существенно отличается от CP866 и KOI8-R. Разница в том, чтобы вместо знаков псевдографики появились в недостающие символы типографики русской, и прочие символы близкородственных языков.

Но это привело к тому, что начали появляться кракозябры. Они часто вылезают во время отправки, получения писем на электронку. Поэтому начали создавать сложные перекодировочные таблицы.

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

 К примеру, знаки CP866 в кодовой таблице Windows 1251 будут выглядеть так:

Существуют еще и универсальные кодировки UTF 8, 16 и 32 — Юникод (Unicode). Их используют для языковой группы юго-восточной Азии.

Вначале появилась вариация UTF 32, где цифра — это количество бит, задействованных для кодирования одного символа. Но это не подходит для европейских языковых групп, поскольку у нее нет большого числа символов. И к тому же, в придачу можно было получить 4-кратное повышение веса текстовых документов, а еще и увеличение объемов интернет трафика и хранимых данных.

Это дало толчок к появлению Юникода — UTF-16. Ее приняли в качестве базового пространства для всех используемых символов. Важно, что эта кодировка применяет только 2 байта на один знак.

Кодировка переменной длины — UTF-8. У нее каждый знак текста кодируется в последовательность длиной от 1 до 6 байт.

Как бороться с кракозябрами

Обычно для создания текстовых файлов, их кодировки применяют Html и PHP редактор Notepad++. В его меню сеть пункт «Кодировки» с его помощью можно изменить вариант, который применен по умолчанию на сайте:

Для Joomla 1.5 и WordPress лучше остановиться на варианте UTF 8 без BOM.

Также при помощи Notepad ++ выбирая кодировку есть возможность преобразования текста в кодировку UCS-2, близкой по сути к Юникод. Есть еще возможность закодировать текст в ANSI.

Как это работает – нужно в Нотепад++ сохранить документ в требуемой колировке, либо открыть его с сайта, чтобы редактировать. И название будет расположено в правом нижнем углу редактора:

Защититься от кракозябров можно еще путем прописания в его шапке исходного кода всех страниц ресурса данные о кодировке, тогда на сервере, локальном хосте не будет путаницы.

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

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