SEO блог – PrjSoft Статьи и новости по SEO

25.11.2010

Кодирование символов в html

Filed under: инструменты для веб мастера — admin @ 10:10 pm

Однобайтовые кодировки

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

Для кириллицы существовало несколько отображений символов на эту вторую часть таблицы, наиболее известными из которых были KOI-8, Windows 1251, cp866, ISO 8859-5.

Многобайтовые кодировки

Набор символов Unicode пришедший на смену ASCII набору изначально уже предполагал порядка 64 тыс. символов (в первых версиях). Каждый национальный символ в таком наборе имел свой индивидуальный код. Последовательность кодов кириллических символов в Unicode совпадает с последовательностью в кодировке ISO 8859-5. Диапазон кириллических символов начинается с 1024 (0400 hex), то есть сдвинут по сравнению с кодами ISO 8859-5 на 864 позиции (0360 hex).

Закодировать 64 тыс. символов в одном байте нельзя и на смену однобайтовых кодировок пришли многобайтовые. Наиболее известная многобайтовая кодировк utf-8. Правила кодирования символов в utf-8 предполагают перенесение двоичного кода Unicode символа в специальные “хвосты” многобайтовой кодировки. Для кодирования ASCII набора хватает “хвоста” одного байта. Для кодирования кириллического диапазона используются “хвосты” двух байтов. Например, русская буква п будет представлена в utf8 как последовательность байтов 11010000 10111111. То есть, взят код символа п в кодировке ISO 8859-5 – 223, затем прибавлено число – 864 и получен, таким образом, unicode для этого символа – 1087. Этот unicode переводится в двоичный вид: 10000111111 и загоняется в хвосты двух байтов 110xxxxx 10xxxxxx, начиная с конца.

Отображение символов браузерами

Современные браузеры обычно поддерживают отображение всех 64 тыс. символов начального диапазнона Unicode. При отображении символов браузер может руководствоваться либо установленной кодировкой и байтами символов, либо мнемоническим именем символа или его HTML ссылкой с уникодом символа. Последние два способа независимо от выбранной кодировки будут отображать символы одинаково.

Кодировщик html символов

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

Примером работы кодировщика является данный абзац, он будет выглядеть одинаково независимо от кодировки браузера.

Буду рад комментариям и замечаниям по работе кодировщика.

1 Comment »

  1. Вообще Юникод – это удачное решение для интернациональной таблицы символов.

    Comment by Ковров A. (http://all-kovrov.ru) — 23.04.2011 @ 7:27 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress