Кодировка текста ASCII (Windows 1251, CP866, KOI8-R) и Юникод (UTF 8, 16, 32) — как исправить проблему с кракозябрами
Обновлено 19 января 2021- ASCII — базовая кодировка текста для латиницы
- Расширенные версии Аски — кодировки CP866 и KOI8-R
- Windows 1251 — почему вылезают кракозябры
- Юникод (Unicode) — универсальные кодировки UTF 8, 16 и 32
- Кракозябры вместо русских букв — как исправить
Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня мы поговорим с вами про то, откуда берутся кракозябры на сайте и в программах, какие кодировки текста существуют и какие из них следует использовать. Подробно рассмотрим историю их развития, начиная от базовой ASCII, а также ее расширенных версий CP866, KOI8-R, Windows 1251 и заканчивая современными кодировками консорциума Юникод UTF 16 и 8.
Кому-то эти сведения могут показаться излишними, но знали бы вы, сколько мне приходит вопросов именно касаемо вылезших кракозябров (не читаемого набора символов). Теперь у меня будет возможность отсылать всех к тексту этой статьи и самостоятельно отыскивать свои косяки. Ну что же, приготовьтесь впитывать информацию и постарайтесь следить за ходом повествования.
ASCII — базовая кодировка текста для латиницы
Развитие кодировок текстов происходило одновременно с формированием отрасли IT, и они за это время успели претерпеть достаточно много изменений. Исторически все начиналось с довольно-таки не благозвучной в русском произношении EBCDIC, которая позволяла кодировать буквы латинского алфавита, арабские цифры и знаки пунктуации с управляющими символами.
Но все же отправной точкой для развития современных кодировок текстов стоит считать знаменитую ASCII (American Standard Code for Information Interchange, которая по-русски обычно произносится как «аски»). Она описывает первые 128 символов из наиболее часто используемых англоязычными пользователями — латинские буквы, арабские цифры и знаки препинания.
Еще в эти 128 знаков, описанных в ASCII, попадали некоторые служебные символы навроде скобок, решеток, звездочек и т. п. Собственно, вы сами можете увидеть их:
Именно эти 128 символов из первоначального вариант ASCII стали стандартом, и в любой другой кодировке вы их обязательно встретите и стоять они будут именно в таком порядке.
Но дело в том, что с помощью одного байта информации можно закодировать не 128, а целых 256 различных значений (двойка в степени восемь равняется 256), поэтому вслед за базовой версией Аски появился целый ряд расширенных кодировок ASCII, в которых можно было кроме 128 основных знаков закодировать еще и символы национальной кодировки (например, русской).
Тут, наверное, стоит еще немного сказать про системы счисления, которые используются при описании. Во-первых, как вы все знаете, компьютер работает только с числами в двоичной системе, а именно с нулями и единицами («булева алгебра», если кто проходил в институте или в школе). Один байт состоит из восьми бит, каждый из которых представляет из себя двойку в степени, начиная с нулевой, и до двойки в седьмой:
Не трудно понять, что всех возможных комбинаций нулей и единиц в такой конструкции может быть только 256. Переводить число из двоичной системы в десятичную довольно просто. Нужно просто сложить все степени двойки, над которыми стоят единички.
В нашем примере это получается 1 (2 в степени ноль) плюс 8 (два в степени 3), плюс 32 (двойка в пятой степени), плюс 64 (в шестой), плюс 128 (в седьмой). Итого получает 233 в десятичной системе счисления. Как видите, все очень просто.
Но если вы присмотритесь к таблице с символами ASCII, то увидите, что они представлены в шестнадцатеричной кодировке. Например, «звездочка» соответствует в Аски шестнадцатеричному числу 2A. Наверное, вам известно, что в шестнадцатеричной системе счисления используются кроме арабских цифр еще и латинские буквы от A (означает десять) до F (означает пятнадцать).
Ну так вот, для перевода двоичного числа в шестнадцатеричное прибегают к следующему простому и наглядному способу. Каждый байт информации разбивают на две части по четыре бита, как показано на приведенном выше скриншоте. Т.о. в каждой половинке байта двоичным кодом можно закодировать только шестнадцать значений (два в четвертой степени), что можно легко представить шестнадцатеричным числом.
Причем, в левой половине байта считать степени нужно будет опять начиная с нулевой, а не так, как показано на скриншоте. В результате, путем нехитрых вычислений, мы получим, что на скриншоте закодировано число E9. Надеюсь, что ход моих рассуждений и разгадка данного ребуса вам оказались понятны. Ну, а теперь продолжим, собственно, говорить про кодировки текста.
Расширенные версии Аски — кодировки CP866 и KOI8-R с псевдографикой
Итак, мы с вами начали говорить про ASCII, которая являлась как бы отправной точкой для развития всех современных кодировок (Windows 1251, юникод, UTF 8).
Изначально в нее было заложено только 128 знаков латинского алфавита, арабских цифр и еще чего-то там, но в расширенной версии появилась возможность использовать все 256 значений, которые можно закодировать в одном байте информации. Т.е. появилась возможность добавить в Аски символы букв своего языка.
Тут нужно будет еще раз отвлечься, чтобы пояснить — зачем вообще нужны кодировки текстов и почему это так важно. Символы на экране вашего компьютера формируются на основе двух вещей — наборов векторных форм (представлений) всевозможных знаков (они находятся в файлах со шрифтами, которые установлены на вашем компьютере) и кода, который позволяет выдернуть из этого набора векторных форм (файла шрифта) именно тот символ, который нужно будет вставить в нужное место.
Понятно, что за сами векторные формы отвечают шрифты, а вот за кодирование отвечает операционная система и используемые в ней программы. Т.е. любой текст на вашем компьютере будет представлять собой набор байтов, в каждом из которых закодирован один единственный символ этого самого текста.
Программа, отображающая этот текст на экране (текстовый редактор, браузер и т.п.), при разборе кода считывает кодировку очередного знака и ищет соответствующую ему векторную форму в нужном файле шрифта, который подключен для отображения данного текстового документа. Все просто и банально.
Значит, чтобы закодировать любой нужный нам символ (например, из национального алфавита), должно быть выполнено два условия — векторная форма этого знака должна быть в используемом шрифте и этот символ можно было бы закодировать в расширенных кодировках ASCII в один байт. Поэтому таких вариантов существует целая куча. Только лишь для кодирования символов русского языка существует несколько разновидностей расширенной Аски.
Например, изначально появилась CP866, в которой была возможность использовать символы русского алфавита и она являлась расширенной версией ASCII.
Т.е. ее верхняя часть полностью совпадала с базовой версией Аски (128 символов латиницы, цифр и еще всякой лабуды), которая представлена на приведенном чуть выше скриншоте, а вот уже нижняя часть таблицы с кодировкой CP866 имела указанный на скриншоте чуть ниже вид и позволяла закодировать еще 128 знаков (русские буквы и всякая там псевдографика):
Видите, в правом столбце цифры начинаются с 8, т.к. числа с 0 до 7 относятся к базовой части ASCII (см. первый скриншот). Т.о. русская буква «М» в CP866 будет иметь код 9С (она находится на пересечении соответствующих строки с 9 и столбца с цифрой С в шестнадцатеричной системе счисления), который можно записать в одном байте информации, и при наличии подходящего шрифта с русскими символами эта буква без проблем отобразится в тексте.
Откуда взялось такое количество псевдографики в CP866? Тут все дело в том, что эта кодировка для русского текста разрабатывалась еще в те мохнатые года, когда не было такого распространения графических операционных систем как сейчас. А в Досе, и подобных ей текстовых операционках, псевдографика позволяла хоть как-то разнообразить оформление текстов и поэтому ею изобилует CP866 и все другие ее ровесницы из разряда расширенных версий Аски.
CP866 распространяла компания IBM, но кроме этого для символов русского языка были разработаны еще ряд кодировок, например, к этому же типу (расширенных ASCII) можно отнести KOI8-R:
Принцип ее работы остался тот же самый, что и у описанной чуть ранее CP866 — каждый символ текста кодируется одним единственным байтом. На скриншоте показана вторая половина таблицы KOI8-R, т.к. первая половина полностью соответствует базовой Аски, которая показана на первом скриншоте в этой статье.
Среди особенностей кодировки KOI8-R можно отметить то, что русские буквы в ее таблице идут не в алфавитном порядке, как это, например, сделали в CP866.
Если посмотрите на самый первый скриншот (базовой части, которая входит во все расширенные кодировки), то заметите, что в KOI8-R русские буквы расположены в тех же ячейках таблицы, что и созвучные им буквы латинского алфавита из первой части таблицы. Это было сделано для удобства перехода с русских символов на латинские путем отбрасывания всего одного бита (два в седьмой степени или 128).
Windows 1251 — современная версия ASCII и почему вылезают кракозябры
Дальнейшее развитие кодировок текста было связано с тем, что набирали популярность графические операционные системы и необходимость использования псевдографики в них со временем пропала. В результате возникла целая группа, которая по своей сути по-прежнему являлись расширенными версиями Аски (один символ текста кодируется всего одним байтом информации), но уже без использования символов псевдографики.
Они относились к так называемым ANSI кодировкам, которые были разработаны американским институтом стандартизации. В просторечии еще использовалось название кириллица для варианта с поддержкой русского языка. Примером такой может служить Windows 1251.
Она выгодно отличалась от используемых ранее CP866 и KOI8-R тем, что место символов псевдографики в ней заняли недостающие символы русской типографики (окромя знака ударения), а также символы, используемые в близких к русскому славянских языках (украинскому, белорусскому и т.д.):
Из-за такого обилия кодировок русского языка, у производителей шрифтов и производителей программного обеспечения постоянно возникала головная боль, а у нас с вам, уважаемые читатели, зачастую вылезали те самые пресловутые кракозябры, когда происходила путаница с используемой в тексте версией.
Очень часто они вылезали при отправке и получении сообщений по электронной почте, что повлекло за собой создание очень сложных перекодировочных таблиц, которые, собственно, решить эту проблему в корне не смогли, и зачастую пользователи для переписки использовали транслит латинских букв, чтобы избежать пресловутых кракозябров при использовании русских кодировок подобных CP866, KOI8-R или Windows 1251.
По сути, кракозябры, вылазящие вместо русского текста, были результатом некорректного использования кодировки данного языка, которая не соответствовала той, в которой было закодировано текстовое сообщение изначально.
Допустим, если символы, закодированные с помощью CP866, попробовать отобразить, используя кодовую таблицу Windows 1251, то эти самые кракозябры (бессмысленный набор знаков) и вылезут, полностью заменив собой текст сообщения.
Аналогичная ситуация очень часто возникает при создании сайтов на WordPress и Joomla, форумов или блогов, когда текст с русскими символами по ошибке сохраняется не в той кодировке, которая используется на сайте по умолчанию, или же не в том текстовом редакторе, который добавляет в код отсебятину не видимую невооруженным глазом.
В конце концов такая ситуация с множеством кодировок и постоянно вылезающими кракозябрами многим надоела, появились предпосылки к созданию новой универсальной вариации, которая бы заменила собой все существующие и решила бы, наконец, на корню проблему с появлением не читаемых текстов. Кроме этого существовала проблема языков подобных китайскому, где символов языка было гораздо больше, чем 256.
Юникод (Unicode) — универсальные кодировки UTF 8, 16 и 32
Эти тысячи знаков языковой группы юго-восточной Азии никак невозможно было описать в одном байте информации, который выделялся для кодирования символов в расширенных версиях ASCII. В результате был создан консорциум под названием Юникод (Unicode — Unicode Consortium) при сотрудничестве многих лидеров IT индустрии (те, кто производит софт, кто кодирует железо, кто создает шрифты), которые были заинтересованы в появлении универсальной кодировки текста.
Первой вариацией, вышедшей под эгидой консорциума Юникод, была UTF 32. Цифра в названии кодировки означает количество бит, которое используется для кодирования одного символа. 32 бита составляют 4 байта информации, которые понадобятся для кодирования одного единственного знака в новой универсальной кодировке UTF.
В результате чего, один и тот же файл с текстом, закодированный в расширенной версии ASCII и в UTF-32, в последнем случае будет иметь размер (весить) в четыре раза больше. Это плохо, но зато теперь у нас появилась возможность закодировать с помощью ЮТФ число знаков, равное двум в тридцать второй степени (миллиарды символов, которые покроют любое реально необходимое значение с колоссальным запасом).
Но многим странам с языками европейской группы такое огромное количество знаков использовать в кодировке вовсе и не было необходимости, однако при задействовании UTF-32 они ни за что ни про что получали четырехкратное увеличение веса текстовых документов, а в результате и увеличение объема интернет трафика и объема хранимых данных. Это много, и такое расточительство себе никто не мог позволить.
В результате развития Юникода появилась UTF-16, которая получилась настолько удачной, что была принята по умолчанию как базовое пространство для всех символов, которые у нас используются. Она использует два байта для кодирования одного знака. Давайте посмотрим, как это дело выглядит.
В операционной системе Windows вы можете пройти по пути «Пуск» — «Программы» — «Стандартные» — «Служебные» — «Таблица символов». В результате откроется таблица с векторными формами всех установленных у вас в системе шрифтов. Если вы выберете в «Дополнительных параметрах» набор знаков Юникод, то сможете увидеть для каждого шрифта в отдельности весь ассортимент входящих в него символов.
Кстати, щелкнув по любому из них, вы сможете увидеть его двухбайтовый код в формате UTF-16, состоящий из четырех шестнадцатеричных цифр:
Сколько символов можно закодировать в UTF-16 с помощью 16 бит? 65 536 (два в степени шестнадцать), и именно это число было принято за базовое пространство в Юникоде. Помимо этого существуют способы закодировать с помощью нее и около двух миллионов знаков, но ограничились расширенным пространством в миллион символов текста.
Но даже эта удачная версия кодировки Юникода не принесла особого удовлетворения тем, кто писал, допустим, программы только на английском языке, ибо у них, после перехода от расширенной версии ASCII к UTF-16, вес документов увеличивался в два раза (один байт на один символ в Аски и два байта на тот же самый символ в ЮТФ-16).
Вот именно для удовлетворения всех и вся в консорциуме Unicode было решено придумать кодировку переменной длины. Ее назвали UTF-8. Несмотря на восьмерку в названии, она действительно имеет переменную длину, т.е. каждый символ текста может быть закодирован в последовательность длиной от одного до шести байт.
На практике же в UTF-8 используется только диапазон от одного до четырех байт, потому что за четырьмя байтами кода ничего уже даже теоретически не возможно представить. Все латинские знаки в ней кодируются в один байт, так же как и в старой доброй ASCII.
Что примечательно, в случае кодирования только латиницы, даже те программы, которые не понимают Юникод, все равно прочитают то, что закодировано в ЮТФ-8. Т.е. базовая часть Аски просто перешла в это детище консорциума Unicode.
Кириллические же знаки в UTF-8 кодируются в два байта, а, например, грузинские — в три байта. Консорциум Юникод после создания UTF 16 и 8 решил основную проблему — теперь у нас в шрифтах существует единое кодовое пространство. И теперь их производителям остается только исходя из своих сил и возможностей заполнять его векторными формами символов текста. Сейчас в наборы даже эмодзи смайлики добавляют.
В приведенной чуть выше «Таблице символов» видно, что разные шрифты поддерживают разное количество знаков. Некоторые насыщенные символами Юникода шрифты могут весить очень прилично. Но зато теперь они отличаются не тем, что они созданы для разных кодировок, а тем, что производитель шрифта заполнил или не заполнил единое кодовое пространство теми или иными векторными формами до конца.
Кракозябры вместо русских букв — как исправить
Давайте теперь посмотрим, как появляются вместо текста кракозябры или, другими словами, как выбирается правильная кодировка для русского текста. Собственно, она задается в той программе, в которой вы создаете или редактируете этот самый текст, или же код с использованием текстовых фрагментов.
Для редактирования и создания текстовых файлов лично я использую очень хороший, на мой взгляд, Html и PHP редактор Notepad++. Впрочем, он может подсвечивать синтаксис еще доброй сотни языков программирования и разметки, а также имеет возможность расширения с помощью плагинов. Читайте подробный обзор этой замечательной программы по приведенной ссылке.
В верхнем меню Notepad++ есть пункт «Кодировки», где у вас будет возможность преобразовать уже имеющийся вариант в тот, который используется на вашем сайте по умолчанию:
В случае сайта на Joomla 1.5 и выше, а также в случае блога на WordPress следует во избежании появления кракозябров выбирать вариант
Дело в том, что когда разрабатывали кодировку ЮТФ-16, зачем-то решили прикрутить к ней такую вещь, как возможность записывать код символа, как в прямой последовательности (например, 0A15), так и в обратной (150A). А для того, чтобы программы понимали, в какой именно последовательности читать коды, и был придуман BOM (Byte Order Mark или, другими словами, сигнатура), которая выражалась в добавлении трех дополнительных байтов в самое начало документов.
В кодировке UTF-8 никаких BOM предусмотрено в консорциуме Юникод не было и поэтому добавление сигнатуры (этих самых пресловутых дополнительных трех байтов в начало документа) некоторым программам просто-напросто мешает читать код. Поэтому мы всегда при сохранении файлов в ЮТФ должны выбирать вариант без BOM (без сигнатуры). Таким образом, вы заранее
Что примечательно, некоторые программы в Windows не умеют этого делать (не умеют сохранять текст в ЮТФ-8 без BOM), например, все тот же пресловутый Блокнот Windows. Он сохраняет документ в UTF-8, но все равно добавляет в его начало сигнатуру (три дополнительных байта). Причем эти байты будут всегда одни и те же — читать код в прямой последовательности. Но на серверах из-за этой мелочи может возникнуть проблема — вылезут кракозябры.
Поэтому ни в коем случае не пользуйтесь обычным блокнотом Windows для редактирования документов вашего сайта, если не хотите появления кракозябров. Лучшим и наиболее простым вариантом я считаю уже упомянутый редактор Notepad++, который практически не имеет недостатков и состоит из одних лишь достоинств.
В Notepad ++ при выборе кодировки у вас будет возможность преобразовать текст в кодировку UCS-2, которая по своей сути очень близка к стандарту Юникод. Также в Нотепаде можно будет закодировать текст в ANSI, т.е. применительно к русскому языку это будет уже описанная нами чуть выше Windows 1251. Откуда берется эта информация?
Она прописана в реестре вашей операционной системы Windows — какую кодировку выбирать в случае ANSI, какую выбирать в случае OEM (для русского языка это будет CP866). Если вы установите на своем компьютере другой язык по умолчанию, то и эти кодировки будут заменены на аналогичные из разряда ANSI или OEM для того самого языка.
После того, как вы в Notepad++ сохраните документ в нужной вам кодировке или же откроете документ с сайта для редактирования, то в правом нижнем углу редактора сможете увидеть ее название:
Чтобы избежать кракозябров, кроме описанных выше действий, будет полезным прописать в его шапке исходного кода всех страниц сайта информацию об этой самой кодировке, чтобы на сервере или локальном хосте не возникло путаницы.
Вообще, во всех языках гипертекстовой разметки кроме Html используется специальное объявление xml, в котором указывается кодировка текста.
<?xml version="1.0" encoding="windows-1251"?>
Прежде, чем начать разбирать код, браузер узнает, какая версия используется и как именно нужно интерпретировать коды символов этого языка. Но что примечательно, в случае, если вы сохраняете документ в принятом по умолчанию юникоде, то это объявление xml можно будет опустить (кодировка будет считаться UTF-8, если нет BOM или ЮТФ-16, если BOM есть).
В случае же документа языка Html для указания кодировки используется элемент Meta, который прописывается между открывающим и закрывающим тегом Head:
<head> ... <meta charset="utf-8"> ... </head>
Эта запись довольно сильно отличается от принятой в стандарте в Html 4.01, но полностью соответствует новому внедряемому потихоньку стандарту Html 5, и она будет стопроцентно правильно понята любыми используемыми на текущий момент браузерами.
По идее, элемент Meta с указание кодировки Html документа лучше будет ставить как можно выше в шапке документа, чтобы на момент встречи в тексте первого знака не из базовой ANSI (которые правильно прочитаются всегда и в любой вариации) браузер уже должен иметь информацию о том, как интерпретировать коды этих символов.
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ruASCII – путеводитель для новичков
Для того, чтобы грамотно использовать ASCII, необходимо расширить знания в данной сфере и о возможностях кодирования.
ASCII представляет собой кодировочную таблицу печатных символов (см. скриншот №1), набираемых на компьютерной клавиатуре, для передачи информации и некоторых кодов. Иными словами происходит кодирование алфавита и десятичных цифр в соответствующие символы, представляющие и несущие в себе необходимую информацию.
Кодировка ASCII была разработана в Америке, поэтому стандартная кодировочная таблица обычно включает в себя английский алфавит с цифрами, что в общей сложности составляет около 128 символов. Но тогда возникает справедливый вопрос: что делать, если необходима кодировка национального алфавита?
Для решения подобных вопросов были разработаны другие версии таблицы ASCII. Например, для языков с иноязычной структурой были или убраны буквы английского алфавита, или к ним добавлялись дополнительные символы в виде национального алфавита. Так, в кодировке ASCII могут присутствовать русские буквы для национального использования (см. скриншот №2).
Данная кодировочная система необходима не только для набора текстовой информации на клавиатуре. Она также используется в графике. Например, в программе ASCII Art Maker графические изображения различных расширений состоят из спектра символов кодировки ASCII (см. скриншот №3).
Как правило, подобные программы можно разделить на те, что выполняют функцию графических редакторов, инвертируя изображение в текст, и на те, что конвертируют изображение в ASCII-графику. Всем известный смайлик (или как его еще называют «улыбающееся человеческое лицо») тоже является примером кодировочного символа.
Данный метод кодировки также может быть востребован во время написания или создания документа HTML. Например, вы вводите определённый и необходимый вам набор знаков, а при просмотре самой страницы на экран будет выведен символ, соответствующий данному коду.
Кроме всего прочего данный вид кодировки необходим при создании многоязычного сайта, потому что знаки, которые не входят в ту или иную национальную таблицу, нужно будет заменить ASCII кодами. Если читатель непосредственно связан с информационно-коммуникативными технологиями (ИКТ), то ему будет полезно ознакомиться и с такими системами как:
- Переносимый набор символов;
- Управляющие символы;
- EBCDIC;
- VISCII;
- YUSCII;
- Юникод;
- ASCII art;
- КОИ-8.
Как и любая систематизированная программа, ASCII обладает своими характерными свойствами. Так, например, десятеричная система исчисления (цифры от 0 до 9) преобразуется в двоичную систему исчисления (т.е. каждая десятеричная цифра преобразуется в двоичную 288=1001000 соответственно).
Буквы, располагающиеся в верхних и нижних колонках, отличаются друг от друга лишь битом, что существенно снижает уровень сложности проверки и редактирование регистра.
При всех этих свойствах кодировка ASCII работает как восьми битная, хотя изначально предусматривалась как семи битная.
Применение ASCII в программах Microsoft Office:
В случае необходимости данный вариант кодирования информации может быть использован в Microsoft Notepad и Microsoft Office Word. В рамках этих приложений документ может быть сохранен в формате ASCII, но в этом случае при наборе текста невозможно будет использование некоторых функций.
В частности, будет недоступно выделение жирным и полужирным шрифтом, потому что кодирование сохраняет лишь смысл набранной информации, а не общий вид и форму. Добавить такие коды в документ вы можете с помощью следующих программных приложений:
- Microsoft Excel;
- Microsoft FrontPage;
- Microsoft InfoPath;
- Microsoft OneNote;
- Microsoft Outlook;
- Microsoft PowerPoint;
- Microsoft Project.
При этом стоит учитывать, что набирая код ASCII в этих приложениях необходимо удерживать нажатой клавиатурную клавишу ALT.
Конечно, все необходимые коды требует более длительного и обстоятельного изучения, но это выходит за пределы нашей сегодняшней статьи. Надеюсь, что она оказалась для Вас действительно полезной.
До новых встреч!
Кодировка ASCII
ASCII обозначает «Американский Стандартный Кодекс для информационного Обмена» (American Standard Code for Information Interchange). Он был разработан в начале 60-х годов 20-го века как стандартная кодировка для компьютеров и аппаратных устройств.
ASCII это 7-битная кодировка, содержащая 128 символов.
Она состоит из цифр от 1 до 9, прописных и строчных латинских символов и некоторых специальных символов.
Кодировки, используемые в современных компьютерах, HTML и в интернете, основаны на кодексе ASCII.
В таблице ниже представлены все 128 символов ASCII и их аналоги в HTML.
Символ ASCII | HTML кодировка | Описание |
---|---|---|
  | пробел | |
! | ! | восклицательный знак |
« | " | компьютерные кавычка |
# | # | номер |
$ | $ | знак доллара |
% | % | процент |
& | & | амперсанд |
‘ | ' | апостроф |
( | ( | левая круглая скобка |
) | ) | правая круглая скобка |
* | * | звездочка (астериск) |
+ | + | плюс |
, | , | запятая |
— | - | дефис |
. | . | точка |
/ | / | слэш |
0 | 0 | цифра 0 |
1 | 1 | цифра 1 |
2 | 2 | цифра 2 |
3 | 3 | цифра 3 |
4 | 4 | цифра 4 |
5 | 5 | цифра 5 |
6 | 6 | цифра 6 |
7 | 7 | цифра 7 |
8 | 8 | цифра 8 |
9 | 9 | цифра 9 |
: | : | двоеточие |
; | ; | точка с запятой |
< | < | знак «меньше чем» |
= | = | равно |
> | > | знак «больше чем» |
? | ? | вопросительный знак |
@ | @ | «собачка» |
A | A | прописная A |
B | B | прописная B |
C | C | прописная C |
D | D | прописная D |
E | E | прописная E |
F | F | прописная F |
G | G | прописная G |
H | H | прописная H |
I | I | прописная I |
J | J | прописная J |
K | K | прописная K |
L | L | прописная L |
M | прописная M | |
N | N | прописная N |
O | O | прописная O |
P | P | прописная P |
Q | Q | прописная Q |
R | R | прописная R |
S | S | прописная S |
T | T | прописная T |
U | U | прописная U |
V | V | прописная V |
W | W | прописная W |
X | X | прописная X |
Y | Y | прописная Y |
Z | Z | прописная Z |
[ | [ | левая квадратная скобка |
\ | \ | обратный слэш |
] | ] | правая квадратная скобка |
^ | ^ | знак вставки |
_ | _ | подчеркивание |
` | ` | градус |
a | a | строчная a |
b | b | строчная b |
c | c | строчная c |
d | d | строчная d |
e | e | строчная e |
f | f | строчная f |
g | g | строчная g |
h | h | строчная h |
i | i | строчная i |
j | j | строчная j |
k | k | строчная k |
l | l | строчная l |
m | m | строчная m |
n | n | строчная n |
o | o | строчная o |
p | p | строчная p |
q | q | строчная q |
r | r | строчная r |
s | s | строчная s |
t | t | строчная t |
u | u | строчная u |
v | v | строчная v |
w | w | строчная w |
x | x | строчная x |
y | y | строчная y |
z | z | строчная z |
{ | { | левая фигурная скобка |
| | | | вертикальная черта |
} | } | правая фигурная скобка |
~ | ~ | тильда |
URL коды символов ACSII
URL коды символов UTF-8 диапазон от U+0400 до U+04FF
HTML Кодирование URL
Таблица кодов символов кирилицы UTF-8
Таблица кодов символов Windows-1251
Кодовая таблица ascii русские буквы.
Кодировка ASCII (American standard code for information interchange)Множество символов, с помощью которых записывается текст, называется алфавитом .
Число символов в алфавите – это его мощность .
Формула определения количества информации: N = 2 b ,
где N – мощность алфавита (количество символов),
b – количество бит (информационный вес символа).
В алфавит мощностью 256 символов можно поместить практически все необходимые символы. Такой алфавит называется достаточным.
Т.к. 256 = 2 8 , то вес 1 символа – 8 бит.
Единице измерения 8 бит присвоили название 1 байт:
1 байт = 8 бит.
Двоичный код каждого символа в компьютерном тексте занимает 1 байт памяти.
Каким же образом текстовая информация представлена в памяти компьютера?
Удобство побайтового кодирования символов очевидно, поскольку байт — наименьшая адресуемая часть памяти и, следовательно, процессор может обратиться к каждому символу отдельно, выполняя обработку текста. С другой стороны, 256 символов – это вполне достаточное количество для представления самой разнообразной символьной информации.
Теперь возникает вопрос, какой именно восьмиразрядный двоичный код поставить в соответствие каждому символу.
Понятно, что это дело условное, можно придумать множество способов кодировки.
Все символы компьютерного алфавита пронумерованы от 0 до 255. Каждому номеру соответствует восьмиразрядный двоичный код от 00000000 до 11111111. Этот код просто порядковый номер символа в двоичной системе счисления.
Таблица, в которой всем символам компьютерного алфавита поставлены в соответствие порядковые номера, называется таблицей кодировки.
Для разных типов ЭВМ используются различные таблицы кодировки.
Международным стандартом для ПК стала таблица ASCII (читается аски) (Американский стандартный код для информационного обмена).
Таблица кодов ASCII делится на две части.
Международным стандартом является лишь первая половина таблицы, т. е. символы с номерами от 0 (00000000), до 127 (01111111).
Структура таблицы кодировки ASCII
Порядковый номер | Код | Символ |
0 — 31 | 00000000 — 00011111 | Символы с номерами от 0 до 31 принято называть управляющими. |
32 — 127 | 00100000 — 01111111 | Стандартная часть таблицы (английский). Сюда входят строчные и прописные буквы латинского алфавита, десятичные цифры, знаки препинания, всевозможные скобки, коммерческие и другие символы. |
128 — 255 | 10000000 — 11111111 | Альтернативная часть таблицы (русская). |
Первая половина таблицы кодов ASCII
Обращаю ваше внимание на то, что в таблице кодировки буквы (прописные и строчные) располагаются в алфавитном порядке, а цифры упорядочены по возрастанию значений. Такое соблюдение лексикографического порядка в расположении символов называется принципом последовательного кодирования алфавита.
Для букв русского алфавита также соблюдается принцип последовательного кодирования.
Вторая половина таблицы кодов ASCII
К сожалению, в настоящее время существуют пять различных кодировок кириллицы (КОИ8-Р, Windows. MS-DOS, Macintosh и ISO). Из-за этого часто возникают проблемы с переносом русского текста с одного компьютера на другой, из одной программной системы в другую.
Хронологически одним из первых стандартов кодирования русских букв на компьютерах был КОИ8 («Код обмена информацией, 8-битный»). Эта кодировка применялась еще в 70-ые годы на компьютерах серии ЕС ЭВМ, а с середины 80-х стала использоваться в первых русифицированных версиях операционной системы UNIX.
От начала 90-х годов, времени господства операционной системы MS DOS, остается кодировка CP866 («CP» означает «Code Page», «кодовая страница»).
Компьютеры фирмы Apple, работающие под управлением операционной системы Mac OS, используют свою собственную кодировку Mac.
Кроме того, Международная организация по стандартизации (International Standards Organization, ISO) утвердила в качестве стандарта для русского языка еще одну кодировку под названием ISO 8859-5.
Наиболее распространенной в настоящее время является кодировка Microsoft Windows, обозначаемая сокращением CP1251.
С конца 90-х годов проблема стандартизации символьного кодирования решается введением нового международного стандарта, который называется Unicode . Это 16-разрядная кодировка, т.е. в ней на каждый символ отводится 2 байта памяти. Конечно, при этом объем занимаемой памяти увеличивается в 2 раза. Но зато такая кодовая таблица допускает включение до 65536 символов. Полная спецификация стандарта Unicode включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов.
Попробуем с помощью таблицы ASCII представить, как будут выглядеть слова в памяти компьютера.
Внутреннее представление слов в памяти компьютера
Иногда бывает так, что текст, состоящий из букв русского алфавита, полученный с другого компьютера, невозможно прочитать — на экране монитора видна какая-то «абракадабра». Это происходит оттого, что на компьютерах применяется разная кодировка символов русского языка.
Dec | Hex | Символ | Dec | Hex | Символ | |
000 | 00 | спец. NOP | 128 | 80 | Ђ | |
001 | 01 | спец. SOH | 129 | 81 | Ѓ | |
002 | 02 | спец. STX | 130 | 82 | ‚ | |
003 | 03 | спец. ETX | 131 | 83 | ѓ | |
004 | 04 | спец. EOT | 132 | 84 | „ | |
005 | 05 | спец. ENQ | 133 | 85 | … | |
006 | 06 | спец. ACK | 134 | 86 | † | |
007 | 07 | спец. BEL | 135 | 87 | ‡ | |
008 | 08 | спец. BS | 136 | 88 | € | |
009 | 09 | спец. TAB | 137 | 89 | ‰ | |
010 | 0A | спец. LF | 138 | 8A | Љ | |
011 | 0B | спец. VT | 139 | 8B | ‹ ‹ | |
012 | 0C | спец. FF | 140 | 8C | Њ | |
013 | 0D | спец. CR | 141 | 8D | Ќ | |
014 | 0E | спец. SO | 142 | 8E | Ћ | |
015 | 0F | спец. SI | 143 | 8F | Џ | |
016 | 10 | спец. DLE | 144 | 90 | ђ | |
017 | 11 | спец. DC1 | 145 | 91 | ‘ | |
018 | 12 | спец. DC2 | 146 | 92 | ’ | |
019 | 13 | спец. DC3 | 147 | 93 | “ | |
020 | 14 | спец. DC4 | 148 | 94 | ” | |
021 | 15 | спец. NAK | 149 | 95 | ||
022 | 16 | спец. SYN | 150 | 96 | – | |
023 | 17 | спец. ETB | 151 | 97 | — | |
024 | 18 | спец. CAN | 152 | 98 | ||
025 | 19 | спец. EM | 153 | 99 | ™ | |
026 | 1A | спец. SUB | 154 | 9A | љ | |
027 | 1B | спец. ESC | 155 | 9B | › | |
028 | 1C | спец. FS | 156 | 9C | њ | |
029 | 1D | спец. GS | 157 | 9D | ќ | |
030 | 1E | спец. RS | 158 | 9E | ћ | |
031 | 1F | спец. US | 159 | 9F | џ | |
032 | 20 | сцеп. SP (Пробел) | 160 | A0 | ||
033 | 21 | ! | 161 | A1 | Ў | |
034 | 22 | » | 162 | A2 | ў | |
035 | 23 | # | 163 | A3 | Ћ | |
036 | 24 | $ | 164 | A4 | ¤ | |
037 | 25 | % | 165 | A5 | Ґ | |
038 | 26 | & | 166 | A6 | ¦ | |
039 | 27 | » | 167 | A7 | § | |
040 | 28 | ( | 168 | A8 | Ё | |
041 | 29 | ) | 169 | A9 | © | |
042 | 2A | * | 170 | AA | Є | |
043 | 2B | + | 171 | AB | « | |
044 | 2C | , | 172 | AC | ¬ | |
045 | 2D | — | 173 | AD | | |
046 | 2E | . | 174 | AE | ® | |
047 | 2F | / | 175 | AF | Ї | |
048 | 30 | 0 | 176 | B0 | ° | |
049 | 31 | 1 | 177 | B1 | ± | |
050 | 32 | 2 | 178 | B2 | І | |
051 | 33 | 3 | 179 | B3 | і | |
052 | 34 | 4 | 180 | B4 | ґ | |
053 | 35 | 5 | 181 | B5 | µ | |
054 | 36 | 6 | 182 | B6 | ¶ | |
055 | 37 | 7 | 183 | B7 | · | |
056 | 38 | 8 | 184 | B8 | ё | |
057 | 39 | 9 | 185 | B9 | № | |
058 | 3A | : | 186 | BA | є | |
059 | 3B | ; | 187 | BB | » | |
060 | 3C | 188 | BC | ј | ||
061 | 3D | = | 189 | BD | Ѕ | |
062 | 3E | > | 190 | BE | ѕ | |
063 | 3F | ? | 191 | BF | ї | |
064 | 40 | @ | 192 | C0 | А | |
065 | 41 | A | 193 | C1 | Б | |
066 | 42 | B | 194 | C2 | В | |
067 | 43 | C | 195 | C3 | Г | |
068 | 44 | D | 196 | C4 | Д | |
069 | 45 | E | 197 | C5 | Е | |
070 | 46 | F | 198 | C6 | Ж | |
071 | 47 | G | 199 | C7 | З | |
072 | 48 | H | 200 | C8 | И | |
073 | 49 | I | 201 | C9 | Й | |
074 | 4A | J | 202 | CA | К | |
075 | 4B | K | 203 | CB | Л | |
076 | 4C | L | 204 | CC | М | |
077 | 4D | M | 205 | CD | Н | |
078 | 4E | N | 206 | CE | О | |
079 | 4F | O | 207 | CF | П | |
080 | 50 | P | 208 | D0 | Р | |
081 | 51 | Q | 209 | D1 | С | |
082 | 52 | R | 210 | D2 | Т | |
083 | 53 | S | 211 | D3 | У | |
084 | 54 | T | 212 | D4 | Ф | |
085 | 55 | U | 213 | D5 | Х | |
086 | 56 | V | 214 | D6 | Ц | |
087 | 57 | W | 215 | D7 | Ч | |
088 | 58 | X | 216 | D8 | Ш | |
089 | 59 | Y | 217 | D9 | Щ | |
090 | 5A | Z | 218 | DA | Ъ | |
091 | 5B | [ | 219 | DB | Ы | |
092 | 5C | \ | 220 | DC | Ь | |
093 | 5D | ] | 221 | DD | Э | |
094 | 5E | ^ | 222 | DE | Ю | |
095 | 5F | _ | 223 | DF | Я | |
096 | 60 | ` | 224 | E0 | а | |
097 | 61 | a | 225 | E1 | б | |
098 | 62 | b | 226 | E2 | в | |
099 | 63 | c | 227 | E3 | г | |
100 | 64 | d | 228 | E4 | д | |
101 | 65 | e | 229 | E5 | е | |
102 | 66 | f | 230 | E6 | ж | |
103 | 67 | g | 231 | E7 | з | |
104 | 68 | h | 232 | E8 | и | |
105 | 69 | i | 233 | E9 | й | |
106 | 6A | j | 234 | EA | к | |
107 | 6B | k | 235 | EB | л | |
108 | 6C | l | 236 | EC | м | |
109 | 6D | m | 237 | ED | н | |
110 | 6E | n | 238 | EE | о | |
111 | 6F | o | 239 | EF | п | |
112 | 70 | p | 240 | F0 | р | |
113 | 71 | q | 241 | F1 | с | |
114 | 72 | r | 242 | F2 | т | |
115 | 73 | s | 243 | F3 | у | |
116 | 74 | t | 244 | F4 | ф | |
117 | 75 | u | 245 | F5 | х | |
118 | 76 | v | 246 | F6 | ц | |
119 | 77 | w | 247 | F7 | ч | |
120 | 78 | x | 248 | F8 | ш | |
121 | 79 | y | 249 | F9 | щ | |
122 | 7A | z | 250 | FA | ъ | |
123 | 7B | { | 251 | FB | ы | |
124 | 7C | | | 252 | FC | ь | |
125 | 7D | } | 253 | FD | э | |
126 | 7E | ~ | 254 | FE | ю | |
127 | 7F | Спец. DEL | 255 | FF | я |
ASCII таблица кодов символов Windows.
Описание специальных (управляющих) символов Следует отметить, что первоначально управляющие символы таблицы ASCII использовались для обеспечения обмена данными по телетайпу, ввода данных с перфоленты и для простейшего управления внешними устройствами.
В настоящее время большинство из управляющих символов ASCII таблицы уже не несут эту нагрузку и могут использоваться для иных целей.
Код | Описание |
---|---|
NUL, 00 | Null, пустой |
SOH, 01 | Start Of Heading, начало заголовка |
STX, 02 | Start of TeXt, начало текста. |
ETX, 03 | End of TeXt, конец текста |
EOT, 04 | End of Transmission, конец передачи |
ENQ, 05 | Enquire. Прошу подтверждения |
ACK, 06 | Acknowledgement. Подтверждаю |
BEL, 07 | Bell, звонок |
BS, 08 | Backspace, возврат на один символ назад |
TAB, 09 | Tab, горизонтальная табуляция |
LF, 0A | Line Feed, перевод строки. Сейчас в большинстве языков программирования обозначается как \n |
VT, 0B | Vertical Tab, вертикальная табуляция. |
FF, 0C | Form Feed, прогон страницы, новая страница |
CR, 0D | Carriage Return, возврат каретки. Сейчас в большинстве языков программирования обозначается как \r |
SO, 0E | Shift Out, изменить цвет красящей ленты в печатающем устройстве |
SI, 0F | Shift In, вернуть цвет красящей ленты в печатающем устройстве обратно |
DLE, 10 | Data Link Escape, переключение канала на передачу данных |
DC1, 11 DC2, 12 DC3, 13 DC4, 14 | Device Control, символы управления устройствами |
NAK, 15 | Negative Acknowledgment, не подтверждаю. |
SYN, 16 | Synchronization. Символ синхронизации |
ETB, 17 | End of Text Block, конец текстового блока |
CAN, 18 | Cancel, отмена переданного ранее |
EM, 19 | End of Medium, конец носителя данных |
SUB, 1A | Substitute, подставить. Ставится на месте символа, значение которого было потеряно или испорчено при передаче |
ESC, 1B | Escape Управляющая последовательность |
FS, 1C | File Separator, разделитель файлов |
GS, 1D | Group Separator, разделитель групп |
RS, 1E | Record Separator, разделитель записей |
US, 1F | Unit Separator, разделитель юнитов |
DEL, 7F | Delete, стереть последний символ. |
Для того, чтобы грамотно использовать ASCII , необходимо расширить знания в данной сфере и о возможностях кодирования.
Что это такое?
ASCII представляет собой кодировочную таблицу печатных символов (см. скриншот №1), набираемых на компьютерной клавиатуре, для передачи информации и некоторых кодов. Иными словами происходит кодирование алфавита и десятичных цифр в соответствующие символы, представляющие и несущие в себе необходимую информацию.
Кодировка ASCII была разработана в Америке, поэтому стандартная кодировочная таблица обычно включает в себя английский алфавит с цифрами, что в общей сложности составляет около 128 символов. Но тогда возникает справедливый вопрос: что делать, если необходима кодировка национального алфавита?
Для решения подобных вопросов были разработаны другие версии таблицы ASCII . Например, для языков с иноязычной структурой были или убраны буквы английского алфавита, или к ним добавлялись дополнительные символы в виде национального алфавита. Так, в кодировке ASCII могут присутствовать русские буквы для национального использования (см. скриншот №2).
Где применяется система кодировки ASCII?
Данная кодировочная система необходима не только для набора текстовой информации на клавиатуре. Она также используется в графике. Например, в программе ASCII Art Maker графические изображения различных расширений состоят из спектра символов кодировки ASCII (см. скриншот №3).
Как правило, подобные программы можно разделить на те, что выполняют функцию графических редакторов, инвертируя изображение в текст, и на те, что конвертируют изображение в ASCII -графику. Всем известный смайлик (или как его еще называют «улыбающееся человеческое лицо ») тоже является примером кодировочного символа.
Данный метод кодировки также может быть востребован во время написания или создания документа HTML. Например, вы вводите определённый и необходимый вам набор знаков, а при просмотре самой страницы на экран будет выведен символ, соответствующий данному коду.
Кроме всего прочего данный вид кодировки необходим при создании многоязычного сайта, потому что знаки, которые не входят в ту или иную национальную таблицу, нужно будет заменить ASCII кодами. Если читатель непосредственно связан с информационно-коммуникативными технологиями (ИКТ), то ему будет полезно ознакомиться и с такими системами как:
- Переносимый набор символов;
- Управляющие символы;
- EBCDIC;
- VISCII;
- YUSCII;
- Юникод;
- ASCII art;
- КОИ-8.
Свойства таблицы ASCII
Как и любая систематизированная программа, ASCII обладает своими характерными свойствами. Так, например, десятеричная система исчисления (цифры от 0 до 9) преобразуется в двоичную систему исчисления (т.е. каждая десятеричная цифра преобразуется в двоичную 288=1001000 соответственно).
Буквы, располагающиеся в верхних и нижних колонках, отличаются друг от друга лишь битом, что существенно снижает уровень сложности проверки и редактирование регистра.
При всех этих свойствах кодировка ASCII работает как восьми битная, хотя изначально предусматривалась как семи битная.
Применение ASCII в программах Microsoft Office:
В случае необходимости данный вариант кодирования информации может быть использован в Microsoft Notepad и Microsoft Office Word. В рамках этих приложений документ может быть сохранен в формате ASCII , но в этом случае при наборе текста невозможно будет использование некоторых функций.
В частности, будет недоступно выделение жирным и полужирным шрифтом, потому что кодирование сохраняет лишь смысл набранной информации, а не общий вид и форму. Добавить такие коды в документ вы можете с помощью следующих программных приложений.
В компьютере понимается процесс ее преобразования в форму, позволяющую организовать более удобную передачу, хранение или автоматическую переработку этих данных. С этой целью используются различные таблицы. Кодировка ASCII — это первая система, разработанная в Соединенных Штатах для работы с англоязычным текстом, которая получила впоследствии распространение во всем мире. Ее описанию, особенностям, свойствам и дальнейшему использованию посвящена статья, представленная ниже.
Отображение и хранение информации в ЭВМ
Символы на мониторе компьютера или того или иного мобильного цифрового гаджета формируются на основе наборов векторных форм всевозможных знаков и кода, позволяющего найти среди них тот символ, который необходимо вставить в нужное место. Он представляет собой последовательностей бит. Таким образом, каждому символу должен однозначно соответствовать набор нулей и единиц, которые стоят в определенном, уникальном порядке.
Как все начиналось
Исторически сложилось так, что первые ЭВМ были англоязычными. Для кодирования символьной информации в них было достаточно использовать всего лишь 7 бит памяти, тогда как для этой цели выделялся 1 байт, состоящий из 8 битов. Количество знаков, понимаемых компьютером в таком случае, было равно 128. В число таких символов входили английский алфавит с его знаками препинания, числа и некоторые специальные символы. Англоязычная семибитная кодировка с соответствующей таблицей (кодовой страницей), разработанная в 1963 году, была названа American Standard Code for Information Interchange. Обычно для ее обозначения использовалась и используется и по сей день аббревиатура «Кодировка ASCII».
Переход к мультиязычности
Со временем компьютеры стали широко использоваться и в неанглоговорящих странах. В связи с этим появилась нужда в кодировках, позволяющих использовать национальные языки. Было решено не изобретать велосипед, и взять за основу ASCII. Таблица кодировки в новой редакции значительно расширилась. Использование 8-го бита позволило переводить на компьютерный язык уже 256 символов.
Описание
Кодировка ASCII имеет таблицу, которая делится на 2 части. Общепринятым международным стандартом принято считать лишь ее первую половину. В нее входят:
- Символы с порядковыми номерами от 0 до 31, кодируемые последовательностями от 00000000 до 00011111. Они отведены для управляющих символов, которые руководят процессом вывода текста на экран или принтер, подачей звукового сигнала и т. п.
- Символы с NN в таблице от 32 до 127, кодируемые последовательностями от 00100000 до 01111111 составляют стандартную часть таблицы. В их число входят пробел (N 32), буквы латинского алфавита (строчные и прописные), десятизначные цифры от 0 до 9, знаки препинания, скобки разного начертания и другие символы.
- Символы с порядковыми номерами от 128 до 255, кодируемые последовательностями от 10000000 до 11111111. В их число включены буквы национальных алфавитов, отличные от латинского. Именно эта альтернативная часть таблицы кодировка ASCII используется для преобразования в компьютерную форму русских символов.
Некоторые свойства
К особенностям кодировки ASCII относится отличие букв «A» — «Z» нижнего и верхнего регистров только одним битом. Это обстоятельство значительно упрощает преобразование регистра, а также его проверку на принадлежность к заданному диапазону значений. Кроме того, все буквы в системае кодировки ASCII представляются собственными порядковыми номерами в алфавите, которые записаны 5 цифрами в двоичной системе счисления, перед которыми для букв нижнего регистра стоит 011 2 , а верхнего — 010 2 .
К числу особенностей кодировки ASCII можно причислить и представление 10 цифр — «0»-«9». Во второй системе счисления они начинаются с 00112, а заканчиваются 2-ми значениями чисел. Так, 0101 2 эквивалентно десятичному числу пять, поэтому символ «5» записывается как 0011 01012. Опираясь на сказанное, можно легко преобразовать двоично-десятичные числа в строку в кодировке ASCII посредством добавления слева битовой последовательности 00112 к каждому полубайту.
«Юникод»
Как известно, для отображения текстов на языках группы юго-восточной Азии требуются тысячи знаков. Такое их количество никак не описывается в одном байте информации, поэтому даже расширенные версии ASCII уже не могли удовлетворять возросшие потребности пользователей из разных стран.
Так, возникла необходимость создания универсальной кодировки текста, разработкой которой при сотрудничестве со многими лидерами мировой IT-индустрии занялся консорциум «Юникод». Его специалистами была создана система UTF 32. В ней для кодирования 1 символа выделялось 32 бита, составляющих 4 байта информации. Главным недостатком было резкое увеличение объема необходимой памяти в целых 4 раза, что влекло за собой множество проблем.
В то же время для большинства стран с официальными языками, относящимися к индоевропейской группе, количество знаков, равное 2 32 , является более чем избыточным.
В результате дальнейшей работы специалистов из консорциума «Юникод» появилась кодировка UTF-16. Она стала тем вариантом преобразования символьной информации, которая устроила всех как по объему требуемой памяти, так и по числу кодируемых символов. Именно поэтому UTF-16 была принята по умолчанию и в ней для одного знака требуется зарезервировать 2 байта.
Даже эта достаточно продвинутая и удачная версия «Юникода» имела некоторые недостатки, и после перехода от расширенной версии ASCII к UTF-16 увеличивала вес документа в два раза.
В связи с этим было решено использовать кодировку переменной длины UTF-8. В таком случае каждый символ исходного текста кодируется последовательностью длиной от 1 до 6 байт.
Связь с American standard code for information interchange
Все знаки латинского алфавита в UTF-8 переменной длины кодируются в 1 байт, как в системе кодировки ASCII.
Особенностью ЮТФ-8 является то, что в случае текста на латинице без использования других символов, даже программы, не понимающие «Юникод», все равно позволят его прочитать. Иными словами, базовая часть кодировки текста ASCII просто переходит в состав новой UTF переменной длины. Кириллические знаки в ЮТФ-8 занимают 2 байта, а, например, грузинские — 3 байта. Созданием UTF-16 и 8 была решена основная проблема создания единого кодового пространства в шрифтах. С тех пор производителям шрифтов остается только заполнять таблицу векторными формами символов текста исходя из своих потребностей.
В различных операционных системах предпочтение отдается различным кодировкам. Чтобы иметь возможность читать и редактировать тексты, набранные в другой кодировке, применяются программы перекодировки русского текста. Некоторые текстовые редакторы содержат встроенные перекодировщики и позволяют читать текст вне зависимости от кодировки.
Теперь вы знаете, сколько символов в кодировке ASCII и, как и почему она была разработана. Конечно, сегодня наибольшее распространение в мире получил стандарт «Юникод». Однако нельзя забывать, что он создан на базе ASCII, поэтому следует по достоинству оценивать вклад его разработчиков в сферу IT.
Excel для Office 365 Word для Office 365 Outlook для Office 365 PowerPoint для Office 365 Publisher для Office 365 Excel 2019 Word 2019 Outlook 2019 PowerPoint 2019 OneNote 2016 Publisher 2019 Visio профессиональный 2019 Visio стандартный 2019 Excel 2016 Word 2016 Outlook 2016 PowerPoint 2016 OneNote 2013 Publisher 2016 Visio 2013 Visio профессиональный 2016 Visio стандартный 2016 Excel 2013 Word 2013 Outlook 2013 PowerPoint 2013 Publisher 2013 Excel 2010 Word 2010 Outlook 2010 PowerPoint 2010 OneNote 2010 Publisher 2010 Visio 2010 Excel 2007 Word 2007 Outlook 2007 PowerPoint 2007 Publisher 2007 Access 2007 Visio 2007 OneNote 2007 Office 2010 Visio Стандартный 2007 Visio стандартный 2010 Меньше
В этой статье
Вставка символа ASCII или Юникода в документ
Если вам нужно ввести только несколько специальных знаков или символов, можно использовать или сочетания клавиш. Список символов ASCII см. в следующих таблицах или статье Вставка букв национальных алфавитов с помощью сочетаний клавиш .
Примечания:
Вставка символов ASCII
Чтобы вставить символ ASCII, нажмите и удерживайте клавишу ALT, вводя код символа. Например, чтобы вставить символ градуса (º), нажмите и удерживайте клавишу ALT, затем введите 0176 на цифровой клавиатуре.
Для ввода чисел используйте цифровую клавиатуру , а не цифры на основной клавиатуре. Если на цифровой клавиатуре необходимо ввести цифры, убедитесь, что включен индикатор NUM LOCK.
Вставка символов Юникода
Чтобы вставить символ Юникода, введите код символа, затем последовательно нажмите клавиши ALT и X. Например, чтобы вставить символ доллара ($), введите 0024 и последовательно нажмите клавиши ALT и X. Все коды символов Юникода см. в .
Важно: Некоторые программы Microsoft Office, например PowerPoint и InfoPath, не поддерживают преобразование кодов Юникода в символы. Если вам необходимо вставить символ Юникода в одной из таких программ, используйте .
Примечания:
Если после нажатия клавиш ALT+X отображается неправильный символ Юникода, выберите правильный код, а затем снова нажмите ALT+X.
Кроме того, перед кодом следует ввести «U+». Например, если ввести «1U+B5» и нажать клавиши ALT+X, отобразится текст «1µ», а если ввести «1B5» и нажать клавиши ALT+X, отобразится символ «Ƶ».
Использование таблицы символов
Таблица символов — это программа, встроенная в Microsoft Windows, которая позволяет просматривать символы, доступные для выбранного шрифта.
С помощью таблицы символов можно копировать отдельные символы или группу символов в буфер обмена и вставлять их в любую программу, поддерживающую отображение этих символов. Открытие таблицы символов
В Windows 10 Введите слово «символ» в поле поиска на панели задач и выберите таблицу символов в результатах поиска.
В Windows 8 Введите слово «символ» на начальном экране и выберите таблицу символов в результатах поиска.
В Windows 7 нажмите кнопку Пуск , последовательно выберите Все программы , Стандартные , Служебные и щелкните Таблица символов .
Символы группируются по шрифту. Щелкните список шрифтов, чтобы выбрать подходящий набор символов. Чтобы выбрать символ, щелкните его, затем нажмите кнопку Выбрать . Чтобы вставить символ, щелкните правой кнопкой мыши нужное место в документе и выберите Вставить .
Коды часто используемых символов
Полный список символов см. в на компьютере, таблице кодов символов ASCII или таблицах символов Юникода, упорядоченных по наборам .
Глиф | Глиф | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Денежные единицы | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Юридические символы | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Математические символы | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Дроби | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Знаки пунктуации и диалектные символы | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Символы форм | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Коды часто используемых диакритических знаковПолный список глифов и соответствующих кодов см. в .
|
Читайте также…
§14. Кодирование текстовой информации | Кодировка ASCII и её расширения (курс фгос 34 ч.)
14.1. Кодировка ASCII и её расширения | ||||
Кодирование текстовой информации | 14.2. Стандарт Unicode |
14.1. Кодировка ASCII и её расширения
Основой для компьютерных стандартов кодирования символов послужил код ASCII (American Standard Code for Information Interchange) — американский стандартный код для обмена информацией, разработанный в 1960-х годах в США и применявшийся для любых, в том числе и некомпьютерных, способов передачи информации (телеграф, факсимильная связь и т. д.). Этот код 7-битовый: общее количество символов составляет 27 = 128, из них первые 32 символа — управляющие, а остальные — изображаемые, т. е. имеющие графическое изображение. К изображаемым символам в ASCII относятся буквы латинского алфавита (прописные и строчные), цифры, знаки препинания и арифметических операций, скобки и некоторые специальные символы. Кодировка ASCII приведена в табл. 3.8.
Таблица 3.8
Кодировка ASCII
Хотя для кодирования символов в ASCII достаточно 7 битов, в памяти компьютера под каждый символ отводится ровно 1 байт (8 битов), при этом код символа помещается в младшие биты, а в старший бит заносится 0.
Например, 01000001 — код прописной латинской буквы «А»; с помощью шестнадцатеричных цифр его можно записать как 41.
Стандарт ASCII рассчитан на передачу только английского текста. Со временем возникла необходимость кодирования и неанглийских букв. Во многих странах для этого стали разрабатывать расширения ASCII -кодировки, в которых применялись однобайтовые коды символов. При этом первые 128 символов кодовой таблицы совпадали с кодировкой ASCII, а остальные (со 128-го по 255-й) использовались для кодирования букв национального алфавита, символов национальной валюты и т. п. Из-за несогласованности этих разработок для многих языков было создано несколько вариантов кодовых таблиц (например, для русского языка их было создано около десятка!).
Впоследствии использование кодовых таблиц было несколько упорядочено: каждой кодовой таблице было присвоено особое название и номер. Для русского языка наиболее распространёнными стали однобайтовые кодовые таблицы CP-866, Windows-1251 (табл. 3.9) и КОИ-8 (табл. 3.10). В них первые 128 символов совпадают с ASCII-кодировкой, а русские буквы размещены во второй части таблицы. Обратите внимание на то, что коды русских букв в этих кодировках различны.
Таблица 3.9
Кодировка Windows-1251
Таблица 3.10
Кодировка КОИ-8
Мы выяснили, что при нажатии на алфавитно-цифровую клавишу в компьютер посылается некоторая цепочка нулей и единиц. В текстовых файлах хранятся не изображения символов, а их коды.
При выводе текста на экран монитора или принтера необходимо восстановить изображения всех символов, составляющих данный текст, причём изображения эти могут быть разнообразны и достаточно причудливы. Внешний вид выводимых на экран символов кодируется и хранится в специальных шрифтовых файлах. Современные текстовые процессоры умеют внедрять шрифты в файл. В этом случае файл содержит не только коды символов, но и описание используемых в этом документе шрифтов. Кроме того, файлы, создаваемые с помощью текстовых процессоров, включают в себя и такие данные о форматировании текста, как его размер, начертание, размеры полей, отступов, межстрочных интервалов и другую дополнительную информацию.
Cкачать материалы урока
Кодировка символов — от Ascii до Unicode
Мы знаем, что, в конце концов, компьютеры — это машины, которые могут хранить и вычислять только 0 и 1, потому что природа современных полупроводниковых компонентов определяет, что двоичный код является сущностью всей компьютерной памяти и вычислений.
Картинка выше может быть научно-фантастической, но в компьютере есть такая штука.
Посмотрите, что есть хорошее толкование Zhihu:
Давным-давно была группа людей, которые решили использовать 8 транзисторов, которые можно включать и выключать, чтобы объединить их в разные состояния, чтобы представить все в мире. Они видят, что 8 состояний переключателя являются хорошими, поэтому они называют это «байтом». Позже они построили несколько машин, которые могли обрабатывать эти байты.Когда машины запускались, они могли использовать байты для составления множества состояний, и состояния начали меняться. Они видят, что это хорошо, поэтому называют эту машину «компьютером».
Автор: Юй Ян
ссылка:https://www.zhihu.com/question/23374078/answer/69732605
Источник: Zhihu
1. Байты? персонаж?
Изучив принцип композиции, вы должны понимать, что компьютерное хранилище использует дополнительный код.Инженер изначально выразил базовую единицу с помощью восьмибитового двоичного кода, который является байтом (битом), а дополнительный код преобразован из исходного кода числа ( Для облегчения расчета хранится в дополнении),А диапазон значений байта — 0-255Между прочим, поток байтов в Java на самом деле представляет собой инкапсулированный массив байтов, который по сути представляет собой строку двоичных потоков.
Конечно, это мое собственное утверждение. Если у вас есть вопросы, пожалуйста, критикуйте меня (базовая мразь)
Затем возникла проблема. Мы надеемся увидеть на экране не строку двоичных нулей и единиц. Мы хотим видеть английские буквы, символы, даже китайские символы и текст на всех языках.То, как операционная система преобразует двоичные байты 0 и 1, хранящиеся на жестком диске, в символы, связано с проблемой кодировки символов.
2. код ASCII
Кажется, что код Ascii нельзя обойти, когда речь идет о кодировке символов.Да, исходная кодировка была изобретена американцами, которые первыми закодировали свои английские символы.Какой самый ранний код ascii, Младшие 7 бит байта используются для представления 128 символов английского языка, а верхний 1 бит унифицирован как 0. В настоящее время люди уже могут использовать кодирование для преобразования двоичного файла, хранящегося в компьютере, в английские буквы и символы для отображения на экране компьютера, даже Даже различные пробелы новой строки и т. Д. Также могут быть представлены этой кодировкой символов,Так что все называют эту схему «Ascii» кодом ANSI., На рисунке ниже представлена таблица символов сравнения кодов ASCII.
Позже европейцы обнаружили, что этих 128 символов было недостаточно, потому что кодировка была расширена, чтобы использовать один байт со всеми восемью битами двоичного кода. Такая кодировка символов называетсяРасширенный набор символов。
3.GBK и Unicode
Говоря сейчас, у вас может быть определенная концепция преобразования байтов в символы, которая достигается за счет кодирования, определенного человеком, точно так же, как соотношение отображения в математических формулах. Позже в наш мир был представлен компьютер, наша программа Сотрудники обнаружили, что этот монитор недостаточно хорош для отображения китайских иероглифов, поэтому они изобрели правила кодирования для китайских иероглифов.
Как и программисты в Европе и США вначале, правила кодирования китайских иероглифов также преобразуются из двоичных в символы (вы умны, вы думали об использовании пиньинь ~~),Во-первых, они сформулировали набор символов GB 2312 (национальный стандарт 2312), который использует два байта, то есть 16-битный двоичный код, для представления китайского символа., Также указаны некоторые римские цифры и японские символы.
Позже было обнаружено, что недостаточно GB 2312 (национальный стандарт 2312. Слишком много китайских иероглифов, поэтому отечественные программисты расширили этот набор символов.Короче говоря, стандарт GBK был наконец расширен. Стандарт GBK по-прежнему использует два байта (16-битный двоичный код) для представления китайского символа, а для английских символов и цифровых символов, определенных самим Ascii, он по-прежнему использует один байт для реализации.
Однако с развитием компьютеров в разных странах были разработаны собственные стандарты кодирования для собственного удобства.Например, я разработал свой собственный набор символов BIG5 в провинции Тайвань.
Вы видите слово «ах», коды по обе стороны пролива разные! !Так много стран в мире в беспорядке.
Поэтому международная организация под названием ISO (Международная организация по стандартизации) решила заняться этой проблемой. Метод, который они приняли, очень прост: отменить все региональные схемы кодирования и восстановить код, включающий все культуры, все буквы и символы на Земле! Они планируют назвать его «Универсальный набор символов с несколькими октетами», или сокращенно UCS, или «юникод».
Автор: Юй Ян
ссылка:https://www.zhihu.com/question/23374078/answer/69732605
Источник: Zhihu
4. Юникод и его различные формы реализации.
Unicode установил жесткое и быстрое правило, согласно которому все символы (буквенно-цифровые, символы или китайские символы и другие языки) реализованы с использованием двух байтов (шестнадцатиразрядный двоичный код).
Правила установлены, но некоторые люди недовольны. Очевидно, что нашим английским буквам нужен только один байт для хранения. Вы должны разрешить мне использовать два байта? То есть объем хранения файла будет удвоен. Это невыносимо для операционной системы, потому что, как программисты, все мы знаем, что все эти программы, которые мы пишем, являются английскими буквами. Если их нужно расширить дважды, возникнут огромные проблемы, будь то передача по сети или хранение на жестком диске.
Поэтому Unicode имеет множество форм реализации, самая известная из которых —UTF-8, UTF-8 реализует форму кодировки набора символов Unicode:
- Для однобайтовых символов первый бит байта устанавливается в 0. Для английского текста код UTF-8 занимает только один байт, что в точности совпадает с кодом ASCII;
- Символы из n байтов (n> 1), первые n бит первого байта установлены на 1, бит n + 1 установлен на 0, первые два бита следующих байтов установлены на 10, эти n слов Остальные пробелы раздела заполняются кодом Unicode символа, а старшие биты заполняются 0.
Автор: uuspider
ссылка:https://www.zhihu.com/question/23374078/answer/65352538
Источник: Zhihu
Другими словами, UTF-8 — это гибко разработанная кодировка символов. Для символов, которым изначально нужен только один байт (8-битный двоичный код) для хранения представления, только один байт дается для их представления, а для других Кодирование выполняется в соответствии с собственными регламентами.
В то же время существуют также формы кодирования UTF-16 и UTF-32, которые все основаны на правилах кодирования Unicode для кодирования, но существуют различные реализации для заполнения байтов символов. Ниже указано количество байтов, необходимое для обычного кодирования.
Английский алфавит:
Количество байтов : 1;Код объявления: GB2312.
Количество байтов : 1;Кодирование: GBK
Количество байтов : 1;Код объявления: GB18030.
Количество байтов : 1;Кодирование: ISO-8859-1.
Количество байтов : 1;Кодировка: UTF-8
Количество байтов : 4;Кодировка: UTF-16
Количество байтов : 2;Кодировка: UTF-16BE
Количество байтов : 2;Кодировка: UTF-16LE
Китайские символы:
Количество байтов : 2;Код объявления: GB2312.
Количество байтов : 2;Кодирование: GBK
Количество байтов : 2;Код объявления: GB18030.
Количество байтов : 1;Кодирование: ISO-8859-1.
Количество байтов : 3;Кодировка: UTF-8
Количество байтов : 4;Кодировка: UTF-16
Количество байтов : 2;Кодировка: UTF-16BE
Количество байтов : 2;Кодировка: UTF-16LE
5. Связь между двоичным файлом, хранящимся на компьютере, и кодировкой файла (экспериментальная).
Сначала мы создаем новый текстовый файл со следующим содержимым.
123
abc
Оххх
Затем мы используем UE для открытия и просмотра его реального двоичного содержимого.
Это код GBK, используемый по умолчанию при создании Блокнота Windows.
можно увидеть:
Для чисел и английских символов используется только один байт (отображается 8-битный двоичный, 31, 32 и т. Д., В действительности двоичный шестнадцатеричный формат, соответствующий двоичный формат
0011 0001、0011 0002
)Для китайских иероглифов два байта используются для хранения, например, «ах» соответствует
B0 A1
(Двоичное преобразованное шестнадцатеричное)
Мы используемКодировка UTF-8Затем откройте его снова.
можно увидеть:
Для чисел и английских символов все еще используется только один байт (8-битный двоичный, 31, 32 и т. Д. Отображаются в двоичном шестнадцатеричном формате, соответствующий двоичный формат
0011 0001、0011 0002
)Для китайских иероглифов для хранения используются три байта, например «а» соответствует
E5 95 8A
(Двоичное преобразованное шестнадцатеричное)
В Windows кодировка UTF-8 может быть не такой, как на картинке ниже.
Вы можете видеть, что впереди еще большеEF BB BF
(Шестнадцатеричный), Это потому, что MicrosoftЧастные товарыПричина, ** добавлена в заголовок файлаBOM Такие вещи ** BOM может выражать:
- Тот факт, что текстовый поток является Unicode, является признаком знания.
- Какая кодировка Unicode является кодировкой текстового потока этого текстового файла? (UTF-8, UTF-16 и т. Д.)
Стандарт Unicode позволяет использовать BOM, но в этом нет необходимости. Microsoft использует такие вещи. Если требуется кроссплатформенность, текст необходимо перекодировать в кодировку UTF-8 без BOM.
Вот немного о частных товарах на платформе Windows,Что такое кодировка Unicode в Windows,Теоретически набор символов Unicode является стандартом кодирования, и реальная реализация по-прежнему зависит от братьев, таких как UTF-8 и UTF-16, точно так же, как взаимосвязь между интерфейсом Java и классом реализации.
Например, если вы используете кодировку Unicode под Windows, вы увидите, что двоичное содержимое текстового файла сейчас:
Что это?По сути, это кодировка UTF-16LE!Причины следующие:
Каждый символ строго представлен двумя байтами, будь то числа или английские символы.
00 32、 00 61
(Шестнадцатеричный) соответствующий1、a
, Или китайские иероглифы55 94
(Шестнадцатеричный) соответствующий"какие"
。Его спецификация
FF FE
На следующем рисунке показана соответствующая спецификация, разрешенная для различных кодов.
В результате моих собственных экспериментов я наконец выяснил связь между двоичным хранилищем и кодировкой символов.
На бумаге это всегда мелко, и я абсолютно знаю, как это сделать.
Увидев здесь друзей, я надеюсь, что смогу вам чем-то помочь.
Справочные материалы:
04.10.2017, 17:31 | |||||||||||||||||||
Кракозябры Кракозябры в Windows 7 Кракозябры в Windows 7 7057 Кракозябры везде (слетела кодировка) Windows Installer: непонятные кракозябры | |||||||||||||||||||
04.10.2017, 17:41 | 2 | ||||||||||||||||||
04.10.2017, 18:26 | 3 | ||||||||||||||||||
04.10.2017, 19:40 [ТС] | 4 | ||||||||||||||||||
Это комментарий в коде программы.
|
Ascii для кодировки кириллицы (CP866)
Американский стандартный код для обмена информацией ( ASCII ) — широко используемая система кодирования символов , представленная в 1963 году.
Исходный набор символов , который теперь называется стандартным набором символов, изначально состоял из 128 символов (7-битный код). Первые 32 символа — это управляющие символы (также называемые непечатаемыми символами), которые используются для управления потоками данных, а также такими устройствами, как принтеры.Позже он был расширен для поддержки 256 символов (8-битный код), чтобы обеспечить языковые символы, различные символы, а также символы для рисования прямоугольников: элементы, используемые для целей презентации, позволяющие рисовать различные типы рамок и прямоугольников. Символы в диапазоне 128–255 называются расширенным ASCII.
Кодовая страница 866 — наиболее широко используемая кодовая страница для написания языков на основе кириллицы: белорусский, боснийский, болгарский, македонский, русский, сербский, украинский (славянские языки) и казахский, киргизский, молдавский, монгольский, таджикский, узбекский (неславянский), кодовая страница 855 является альтернативной.Только расширенный набор символов отличается от исходной кодовой страницы, причем как управляющие символы, так и стандартный набор символов представляют собой простой ASCII.
Таблица символов ниже показывает графическое представление каждого символа с точностью до пикселя вместе с текстовым описанием.
Управляющие символы (0 — 31):
Dec | Hex | Char | Описание | Dec | Hex | Char | Описание |
0 | 0 | NUL (Null) | 16 | 10 | DLE (Выход из канала передачи данных) | ||
1 | 1 | SOH (начало заголовка) | 17 | 11 | DC1 (Управление устройством 1) | ||
2 | 2 | STX ( Начало текста) | 18 | 12 | DC2 (Управление устройством 2) | ||
3 | 3 | ETX (Конец текста) | 19 | 13 | DC3 (Управление устройством 3 ) | ||
4 | 4 | EOT (конец передачи) | 20 | 14 | DC4 (Device Control 4) | ||
5 | 5900 25 | ENQ (запрос) | 21 | 15 | NAK (отрицательное подтверждение) | ||
6 | 6 | ACK (подтверждение) | 22 | 16 | SYN (синхронный холостой ход) | ||
7 | 7 | BEL (Bell) | 23 | 17 | ETB (конец блока передачи) | ||
8 | 8 | BS (BackSpace) | 24 | 18 | CAN (отмена) | ||
9 | 9 | HT (горизонтальная таблица) | 25 | 19 | EM (конец среды) | ||
10 | A | LF (перевод строки) | 26 | 1A | SUB (замена) | ||
11 | B | VT (вертикальное табулирование) | 27 | 1B | ESC (выход) | ||
12 | C | FF (подача формы) | 28 | 1C | FS (разделитель файлов) | ||
13 | D | CR (Возврат каретки) | 29 | 1D | GS (Разделитель групп) | ||
14 | E | SO (Shift Out) | 30 | 1E | RS (Разделитель записей) | ||
15 | F | SI (сдвиг внутрь) | 31 | 1F | US (разделитель единиц) |
Стандартный набор символов (32-127):
Dec | Hex | Char | Описание | Dec | Hex | Char | Описание |
32 | 20 | Пространство | 80 | 50 | Верхний корпус P | ||
33 | 21 | Восклицательный знак | 81 | 51 | Верхний корпус Q | ||
34 | 22 | Котировальный знак | 82 | 52 | Верхний корпус R | ||
35 | 23 | Хеш | 83 | 53 | Верхний корпус S | ||
36 | 24 | Доллар | 84 | 54 | Верхний корпус T | ||
37 | 25 | Процент | 85 | 55 | Верхний ок. se U | ||
38 | 26 | Ampersand | 86 | 56 | Верхний корпус V | ||
39 | 27 | Апостроф | 87 | 57 | Верхний корпус W | ||
40 | 28 | Открытый кронштейн | 88 | 58 | Верхний корпус X | ||
41 | 29 | Закрытый кронштейн | 89 | 59 | Верхний корпус Y | ||
42 | 2A | Asterisk | 90 | 5A | Верхний корпус Z | ||
43 | 2B | Plus | 91 | 5B | Открытый квадратный кронштейн | ||
44 | 2C | Запятая | 92 | 5C | Обратная косая черта | ||
45 | 2D | Чертеж | 93 | 5D | Закрытый квадратный кронштейн | ||
46 | 2E | Полная остановка | 94 | 5E | Каретка | ||
47 | 2F | Слэш | 95 | 5F | Подчеркивание | ||
48 | 30 | Ноль | 96 | 60 | Могильный акцент | ||
49 | 31 | Один | 97 | 61 | Нижний корпус a | ||
50 | 32 | Два | 98 | 62 | Нижний корпус b | ||
51 | 33 | Три | 99 | 63 | Нижний корпус c | ||
52 | 34 9002 5 | Четыре | 100 | 64 | Нижний корпус d | ||
53 | 35 | Пять | 101 | 65 | Нижний корпус e | ||
54 | 36 | Шесть | 102 | 66 | Нижняя часть корпуса f | ||
55 | 37 | Семь | 103 | 67 | Нижняя часть корпуса g | ||
56 | 38 | Восемь | 104 | 68 | Нижняя часть корпуса h | ||
57 | 39 | Девять | 105 | 69 | Нижняя часть корпуса i | ||
58 | 3A | Колонка | 106 | 6A | Нижний регистр j | ||
59 | 3B | Точка с запятой | 107 | 6B | Нижняя часть корпуса k | ||
60 | 3C | Менее | 108 | 6C | Нижняя часть корпуса l | ||
61 | 3D | Знак равенства | 109 | 6D | Нижний регистр m | ||
62 | 3E | Больше чем | 110 | 6E | Нижний регистр n | ||
63 | 3F | Вопросительный знак | 111 | 6F | Нижняя часть корпуса o | ||
64 | 40 | At | 112 | 70 | Нижняя часть корпуса p | ||
65 | 41 | Верхняя часть корпуса A | 113 | 71 | Нижний корпус q | ||
66 | 42 | Верхний корпус B | 9002 4 11472 | Нижний корпус r | |||
67 | 43 | Верхний корпус C | 115 | 73 | Нижний корпус s | ||
68 | 44 | Верхний корпус D | 116 | 74 | Нижняя часть корпуса t | ||
69 | 45 | Верхняя часть корпуса E | 117 | 75 | Нижняя часть корпуса u | ||
70 | 46 | Верхняя часть корпуса F | 118 | 76 | Нижняя часть корпуса v | ||
71 | 47 | Верхняя часть корпуса G | 119 | 77 | Нижняя часть корпуса w | ||
72 | 48 | Верхний корпус H | 120 | 78 | Нижний корпус x | ||
73 | 49 | Верхний корпус e I | 121 | 79 | Нижняя часть корпуса y | ||
74 | 4A | Верхняя часть корпуса J | 122 | 7A | Нижняя часть корпуса z | ||
75 | 4B | Верхний кожух K | 123 | 7B | Открытый раскос | ||
76 | 4C | Верхний кожух L | 124 | 7C | Труба | ||
77 | 4D | Верхняя часть корпуса M | 125 | 7D | Закрывающая скоба | ||
78 | 4E | Верхняя часть корпуса N | 126 | 7E | Тильда | ||
79 | 4F | Верхняя case O | 127 | 7F | Удалить |
Расширенный набор символов (128-255):
Dec | Hex | Char | Описание | Dec | Hex | Char | Описание |
128 | 80 | Верхний регистр с кириллицей A | 192 | C0 | Коробка рисунки светятся и справа | ||
129 | 81 | Верхний регистр с кириллицей BE | 193 | C1 | Чертежи светятся и горизонтально | ||
130 | 82 | Верхний регистр с кириллицей VE | 194 | C2 | Чертежи коробки с подсветкой вниз и по горизонтали | ||
131 | 83 | Верхний регистр с кириллицей GHE | 195 | C3 | Чертежи коробки с подсветкой вертикально и справа | ||
132 | 84 | Верхний регистр с кириллицей DE | 196 | C 4 | Чертежи коробки светлые горизонтальные | ||
133 | 85 | Верхний регистр кириллицы IE | 197 | C5 | Чертежи коробки светлые вертикальные и горизонтальные | ||
134 | 86 | Кириллица верхний корпус ZHE | 198 | C6 | Чертежи коробок вертикальные одинарные и правые двойные | ||
135 | 87 | Верхний регистр кириллицей ZE | 199 | C7 | Чертежи коробок вертикальные двойные и правые одинарные | ||
136 | 88 | Верхний регистр с кириллицей I | 200 | C8 | Чертежи коробки, сдвоенные вверх и вправо | ||
137 | 89 | Верхний регистр с кириллицей короткий I | 201 | C9 | Чертежи коробки, сдвоенные вниз и вправо | ||
8A | Верхний регистр с кириллицей KA | 202 | CA | Чертежи коробки, сдвоенные и горизонтальные | |||
139 | 8B | Верхний регистр с кириллицей EL | 203 | CB | Чертежи коробки, сдвоенные по вертикали и по горизонтали | ||
140 | 8C | Верхний регистр с кириллицей EM | 204 | CC | Чертежи коробки сдвоенный по вертикали и справа | ||
141 | 8D | Верхний кириллица корпус EN | 205 | CD | Чертежи коробки двойные горизонтальные | ||
142 | 8E | Кириллица верхний регистр O | 206 | CE | Чертежи коробок двойные вертикальные и горизонтальные | ||
143 | 8F | Верхняя часть корпуса с кириллицей PE | 207 | CF | Чертежи коробки вверх одинарные и горизонтальные двойные | ||
144 | 90 | Верхний регистр с кириллицей ER | 208 | D0 | Чертежи коробок вверх двойные и горизонтальные одинарные | ||
145 | 91 | Верхний регистр с кириллицей ES | 209 | D1 | Чертежи коробки внизу, одинарная и горизонтальная двойная | ||
146 | 92 | Верхняя часть кириллицы TE | 210 | D2 | Чертежи коробки внизу двойной и горизонтальный одинарный | ||
147 | 93 | Верхний регистр с кириллицей U | 211 | D3 | Чертежи коробки вверх двойной и правый одинарный | ||
148 | 94 | Верхний регистр с кириллицей EF | 212 | D4 | Чертежи коробки вверх одинарный и правый двойной e | ||
149 | 95 | Верхний регистр с кириллицей HA | 213 | D5 | Чертежи коробки внизу одинарный и правый двойной | ||
150 | 96 | Верхний регистр с кириллицей TSE | 214 | D6 | Чертежи коробки внизу, двойная и правая, одинарная | ||
151 | 97 | Верхний регистр с кириллицей CHE | 215 | D7 | Чертежи коробки вертикальный двойной и горизонтальный одинарный | ||
152 | 98 | Верхний регистр с кириллицей SHA | 216 | D8 | Чертежи коробки вертикальный одинарный и горизонтальный двойной | ||
153 | 99 | Верхний регистр кириллицы SHCHA | 217 | D9 | Коробка рисунки загораются и слева | ||
154 | 9A | Верхний регистр с кириллицей жесткий знак | 218 | DA | Чертежи коробки с подсветкой снизу и справа | ||
155 | 9B | Верхний регистр с кириллицей YERU | 219 | DB | Полный блок | ||
156 | 9C | Кириллический верхний регистр мягкий знак | 220 | DC | Нижний полублок | ||
157 | 9D | Кириллический верхний регистр E | 221 | DD | Левый полублок | ||
158 | 9E | Верхний регистр с кириллицей YU | 222 | DE | Правый полублок | ||
159 | 9F | Верхний регистр с кириллицей YA | 223 | DF | Верхний полублок | ||
160 | A0 | Кириллица нижний регистр a | 224 | E0 | Нижний регистр кириллицы er | ||
161 | A1 | Нижний регистр кириллицы be | 225 | E1 | Кириллица нижний регистр es | ||
162 | A2 | Строчная кириллица ve | 226 | E2 | Строчная кириллица te | ||
163 | A3 | Строчная кириллица ghe | 227 | E3 | Строчная кириллица u | ||
164 | A4 | Нижний регистр кириллицы | 228 | E4 | Нижний регистр кириллицы ef | ||
165 | A5 | Строчный регистр кириллицы т.е. | 229 | E5 | Строчная кириллица ha | ||
166 | A6 | Строчная кириллица r case zhe | 230 | E6 | Строчная кириллица tse | ||
167 | A7 | Строчная кириллица ze | 231 | E7 | Строчная кириллица che | ||
168 | A8 | Нижний регистр кириллицы i | 232 | E8 | Нижний регистр кириллицы sha | ||
169 | A9 | Кириллический нижний регистр, короткий i | 233 | E9 | Кириллица нижний регистр ща | ||
170 | AA | Кириллица нижний регистр ка | 234 | EA | Кириллица нижний регистр жесткий знак | ||
171 | AB | Кириллица нижний регистр el | 235 | EB | Кириллица в нижнем регистре yeru | ||
172 | AC | 900 24 Нижний регистр кириллицы em | 236 | EC | Мягкий знак нижнего регистра кириллицы | ||
173 | AD | Нижний регистр кириллицы en | 237 | ED | Строчный регистр кириллицы e | ||
174 | AE | Строчная кириллица o | 238 | EE | Строчная кириллица yu | ||
175 | AF | Строчная кириллица pe | 239 | EF | Cyrillic нижний регистр ya | ||
176 | B0 | Светлый оттенок | 240 | F0 | Кириллический верхний регистр IO | ||
177 | B1 | Средний оттенок | 241 | F1 | Нижний регистр кириллицы io | ||
178 | B2 | Темный оттенок | 242 | F2 | Кириллица верхний регистр украинский IE | ||
179 | B3 | Чертежи коробки светлый вертикальный | 243 | F3 | Кириллица нижний регистр украинский ie | ||
180 | B4 | Чертежи коробки светлые вертикально и слева | 244 | F4 | Верхний регистр кириллицы YI | ||
181 | B5 | Чертежи коробки вертикальный одинарный и левый двойной | 245 | F5 | Кириллица нижний регистр yi | ||
182 | B6 | Чертежи коробки вертикальная двойная и левая одинарная | 246 | F6 | Кириллический верхний регистр короткий U | ||
183 | B7 | Чертежи коробки вниз двойные и левый одинарный | 247 | F7 | Кириллица нижняя ок. se short u | ||
184 | B8 | Чертежи коробки внизу, одинарная и слева, двойная | 248 | F8 | Знак градуса | ||
185 | B9 | Чертежи коробки двойные вертикально и слева | 249 | F9 | Оператор пули | ||
186 | BA | Чертежи коробки двойные вертикальные | 250 | FA | Средняя точка | ||
187 | BB | Двойные чертежи коробки вниз и влево | 251 | FB | Квадратный корень | ||
188 | BC | Чертежи коробки удвоены вверх и влево | 252 | FC | Цифровой знак | ||
189 | BD | Чертежи коробки вверх двойная и левая одинарная | 253 | FD | Знак валюты | ||
190 | BE | Чертежи коробки вверх одинарный и левый двойной | 254 | FE | Черный квадрат | ||
191 | BF | Чертежи коробки светлые вниз и влево | 255 | FF | Без пробелов |
The Cyrillic Charset Soup
The Cyrillic Charset Soup Несмотря на то, что ISO 8859 содержит стандарт Кодировка кириллицы, есть еще куча других кодировок кириллицы используется на компьютерах по всему миру.Эта страница пытается объяснить, почему это так, давая исторический обзор. Каждая кодировка проиллюстрирована с помощью растрового изображения GIF вместе с базовой таблицей сопоставления Unicode и Шрифт BDF (X / Unix).Кириллица
Братья и православные славянские монахи Кирилл и Мефодий изобрел глаголицу в Македонии в 863 году как зашифрованный греческий алфавит с расширениями для особых славянских звуков. Их ученый Климент Охридский изобрел «кириллицу» позже, когда более читаемый преобразованный глаголический алфавит.В течение веками кириллица была распространена и преобразована, и она была модернизирована в ее нынешнюю романизированную форму (Гражданка) под Царь Петр Великий.
В настоящее время кириллица используется более чем на 70 языках. от славянских языков Восточной Европы русский (ру), украинский (uk), белорусский (be), болгарский (bg), сербский (sr) и македонский (mk) над алтайскими языками Центральной Азии, такими как азербайджанский (az), туркменский (tk), Курдский (ку), узбекский (uz), казахский (kk), киргизский (ky) другим, таким как Таджикский (tg) и монгольский (mn).В вашей библиотеке может быть буклет «Альфавиты языков народов СССР» Кенесбая Мусаевича Мусаева, который был опубликовано в 1965 году.
С маленьким алфавитом без акцента русский и болгарский языки казались одинаково хорошо подходит для компьютерной обработки, как и английский.
Самая старая стандартизированная кириллическая компьютерная кодировка, найденная мною (в Иоанна Clews ‘Language Automation Worldwide) — государственный стандарт ГОСТ 13052, 7-битная кодировка, кодирующая буквы русского алфавита. алфавит (который также удовлетворяет все болгарские потребности) на вершине соответствующие буквы ASCII противоположного case (чтобы распознать русский текст типа «РУССКИЙ ТЕКСТ» по его регистру, когда представлены в кодировке ASCII.Я буду называть это свойство соответствием KOI), пожертвовал пунктиром, чтобы уменьшить алфавит до 32 букв. поместился в два ряда и убрал редко используемый ЗАПИСНОЙ ЖЕСТКИЙ ЗНАК на предотвратить его столкновение с DELETE в позиции = 7F или EOF = -1:
кодировка = koi-0
[ТЕКСТ]
[BDF]
Дело в том, что болгарский гораздо чаще использует ЗАГЛАВНЫЙ ЗНАК побудили некоторых болгар закодировать свой жесткий знак поверх ненужный русский YERY bI вместо этого.
В 1974 г. ГОСТ опубликовал еще один государственный стандарт ГОСТ 19768-74, с двумя наборами символов, которые обе смешали латинский и кириллический алфавиты в одном наборе, сохранив Оригинальная идея корреспонденции KOI жива:Первой была еще одна 7-битная кодировка под названием KOI-7 только с заглавной буквы. буквы:
кодировка = koi-7
[ТЕКСТ]
[BDF]
кодировка = koi8-a
[ТЕКСТ]
[BDF]
KOI-8 использовался на многих сетевых Unix-хостах. Естественно, прижился знак доллара ASCII $ вместо знака международной валюты, хотя это не было политкорректный. Пунктирная (йо) добавлена в столбец 3, поэтому что такие слова, как e (yeyo), больше не нужно писать без ударения ее.
Вернее, последний шаг не происходил, пока компания Demos не начала портировать Поддержка кириллицы для ОС Unix для ПК, таких как Xenix в конце 1980-х и разработал новую российскую кодовую страницу КОИ-8, которая позже стала известна как KOI8-R с пунктирной точкой в позиции от первый проект DIS-6937-8 / DIS-8859-5 и все нерусские буквы вычищены и заменены блочной графикой.
Но многие поставщики шрифтов реализовали только подмножество букв. Разрешите нам назовем его КОИ8-Б, это расширенная (большая) база КОИ-8, содержащая буквы (буквы) общие (баса) для всех современных вариантов КОИ-8:
кодировка = koi8-b
[ТЕКСТ]
[BDF]
В середине 1980-х годов ECMA комитет по разработке серии ISO-8859 и его кириллица ISO-8859-5 хотела сохранить совместимость с установлена база десятилетнего стандарта КОИ-8 и элегантно добавлены отсутствующие украинский, белорусский, Сербские и македонские буквы в неиспользуемых кодовых точках.Их проект был опубликован как 1-е издание стандарта ECMA-113 в 1986 году и проект международного стандарта DIS-8859-5 в 1987 г. и был зарегистрирован с номером 111 в Международном реестре ISO наборов символов, которые будут использоваться с (ISO-2022) escape последовательности, отсюда и название ISO-IR-111 и псевдоним ECMA-кириллица:
кодировка = koi8-e
[ТЕКСТ]
[BDF]
ISO-IR-111 так и не был принят в качестве окончательного ISO-8859-5, потому что за это время ГОСТ пережил некоторую перестройку и объявил установленную базу и KOI соответствие менее важным и пересмотрело его стандарт 19768 года с 1974 по 1987 год в несовместимый новый ГОСТ 19768-87, в котором русские буквы перемещены на одну строку вверх и заказал их в родном русском словаре порядка (АБВГД) вместо порядка корреспонденции KOI (ABCDE):
кодировка = ГОСТ-19768-87
[ТЕКСТ]
[BDF]
ECMA сразу же последовала за ГОСТом по совету советских экспертов, пересмотрев свои первые предложение и перестановка их ISO-IR-111 символов на позиции кода нового ГОСТ 19768-87.Дизайнеры не дошли до сортировки нерусские буквы в русский алфавит для обеспечения правильного порядок словаря для всех языков, как, например, в Стандарт ISO 9 (Транслитерация кириллицы). Пересмотренное предложение опубликовано как 2-е издание ECMA-113: 1988 (заменяющее исходное ECMA-113: 1986, который стал жить дальше (популярен благодаря сочетанию нерусских букв с КОИ-8 совместимость) под своим ником ECMA-Cyrillic (хотя ECMA ссылается вы переходите к ISO-8859-5 сейчас) или ISO-IR-111) и приняли в ISO 8859 (несмотря на советское голосование против знак доллара) в качестве окончательного стандарта ISO-8859-5 (ISO-IR-144) в 1988 году.Многие люди, включая меня, считают, что это избавило бы нас от многих проблема, если исходный KOI8-совместимый DIS-8859-5: 1987 также был выбран ISO-8859-5: 1988. Сейчас мы имеют международный стандарт ISO-8859-5, который так нестандартен что его почти никто не любит и не использует:
кодировка = ISO-8859-5
[ТЕКСТ]
[BDF]
после RFC 1341 (MIME) предложил использовать кириллицу ISO-8859-5 в электронной почте. общение, пока русский раздел Интернета (группы новостей relcom. *) все еще использовал KOI-8, Андрей Чернов отправился в опубликовать его RFC 1489 Регистрация набора символов кириллицы «КОИ8-Р» и установил KOI8-R как стандарт де-факто в Интернете.KOI8-R, который позже был также пронумерован как CP878, содержит пунктирный KOI8 плюс много графических персонажей:
кодировка = koi8-r
[ТЕКСТ]
[BDF]
Андрей Чернов предлагает много практической информации о КОИ8-Р. на его сайте.
Со всеми этими кодировками есть особая украинская проблема. Украинцы читают букву GHE со штрихом вниз как хе. Написать исправьте ghe им нужна украинская буква GHE С UPTURN, которая была был подавлен сталинскими чиновниками и восстановлен в 1990 году.
Можно злоупотребить акцентированным GHE (македонским GJE) в ISO-IR-111 или ISO-8859-5 для представления GHE WITH UPTURN, но это не похоже на быть предпочтительным вариантом. Украинцы, кажется, предпочитают кодировки, которые включить реальный GHE с UPTURN. GHE WITH UPTURN присутствует в Microsoft CP1251, Fingertip KOI8-Unified и, конечно же, Unicode. Тем не менее, эти варианты не казались близкими Достаточно KOI8-R, чтобы остановить украинских почтмейстеров от разработки новый КОИ8-У и его публикация как RFC2319 в Апрель 1998 г.КОИ8-У добавил только украинские буквы в позициях совместим с ISO-IR-111, используемым многими Украинцы и сохранили как можно больше персонажей-рисовальщиков, потому что многие пользователи в этой области все еще придерживаются MS-DOS. Из-за этого предпочтение, в нем отсутствуют короткое U с белорусским акцентом, сербское и Македонская поддержка:
кодировка = koi8-u
[ТЕКСТ]
[BDF]
Я предполагаю, что спецификация RFC2319 и RFC1489 пули KOI8-R как математическая U + 2219 BULLET OPERATOR — это ошибка, унаследованная от RFC1345 и должна быть исправлено на U + 2022 BULLET, как в собственных таблицах Келда Симонсена для IBM437 или KOI8-R.В целом обратите внимание, что RFC1345 и все, что на нем основано, например, GNU recode 3.4.1 содержал ряд ошибок, особенно в области кириллицы: его isoir111 больше похож на cp1251, чем на koi8. RFC2319 содержит дополнительная ошибка, которая кодирует Кириллическую ЗАГЛАВНУЮ БУКВУ UKRAINIAN IE как U + 0403 вместо U + 0404.
Питер Кассетта из Fingertip Софт, который также опубликовал красивую кириллицу ссылка на кодировку для его клиентов уже разработана и предложил другое решение: Его KOI8-Unified объединяет все ISO-IR-111 буквы с украинскими буквами КОИ8-У и базовая блочная графика KOI8-R и некоторые популярные символы из кодовых страниц Windows 1251 и 1252, уравновешивая различные потребности совместимости:
кодировка = koi8-f
[ТЕКСТ]
[BDF]
Вы можете использовать этот шрифт koi8-f для отображения всего текста koi8- * и всего буквы будут отображаться правильно, но некоторые из менее используемых изображений символы в koi8-r могут отображаться неправильно.
Еще один серьезный игрок на поле — WinCyrillic Windows от Microsoft. кодовая страница CP1251, для которой Microsoft зарегистрировала этикетку «Windows-1251», которая не должна быть ошибочно принят за предшественник сегодняшней Windows95 в 13 веке. По состоянию на В декабре 1997 года вас приветствует даже новый веб-сервер ГОСТ (Lotus Notes). с charset = WINDOWS-1251 — ГОСТ (Российская стандартизация органа и органа-члена ISO) не даже следуя собственным стандартам, любой более! CP1251 имеет богатый репертуар в порядке, не совместимом ни с ISO-IR-111 (KOI8), ни с ISO-8859-5:
кодировка = Windows-1251
[ТЕКСТ]
[BDF]
charset = MacУкраинский язык
[ТЕКСТ]
[BDF]
кодировка = cp866
[ТЕКСТ]
[BDF]
кодировка = болгарский-мик
[ТЕКСТ]
[BDF]
Вы устали от этого множества кодировок, в которых самый лучший? Хотели бы вы иметь одну хорошую кодировку, способную заменить все вышеперечисленное и везде примут? Не могли бы вы тоже любите писать неславянские кириллические языки? Вы получаете все это и многое другое с Unicode (ISO-10646), который просто кодирует все персонажи мира.
Это блок кириллицы U + 0400 в Unicode. Это следует по порядку ISO-8859-5:
кодировка = юникод-2-1
[ТЕКСТ]
[BDF]
Ольга Лапко заявляет на страницах 175 и 179 блестящего выпуска TUGboat 17-2 (Труды Ежегодная встреча группы пользователей TeX в 1996 г. в Дубне, Россия), что около 100 В Unicode по-прежнему отсутствуют кириллические буквы. Большинство из них кажутся кодируются с комбинированием акцентов, а остальные могут быть добавлены с помощью процедуры, описанной в Приложение B, однако, отправка новых символов стандарта Unicode.
Каждая кириллическая буква кодируется двумя байтами в UTF-8. Стандартная схема сжатия для Unicode (SCSU) позволяет уменьшить это значение до традиционного, одного байта на букву.
Я все еще пишу Unicode-HOWTO для Linux. Я добавил Cyrillic.kmap, злоупотребляющий ISO 9 транслитерация как метод ввода в текстовый редактор Yudit Unicode для X Window System.
Я призываю вас присылать свои комментарии по адресу [email protected]. я благодарен Кристофер Неханив, Андреас Прилоп, Питер Кассетта <пит @ кириллица.com>, Андрей Чернов, Кельд Симонсен, Борислав Стоянов, Гюнчо Скордев, Илья Винарский, Дима Володин, Кристиан Вайсгербер, Алена Кесси и Юрию Демченко за предоставленную ценную информацию.
Роман Чиборра
1998-05-25 .. 1998-11-30
|
|
PostgreSQL: Документация: 9.3: Поддержка набора символов
Поддержка набора символов в PostgreSQL позволяет хранить текст в множество наборов символов (также называемых кодировками), включая однобайтовые наборы символов, такие как серия ISO 8859 и многобайтовые наборы символов, такие как EUC (Extended Unix Code), UTF-8 и Mule внутренний код. Можно использовать все поддерживаемые наборы символов. прозрачно для клиентов, но некоторые из них не поддерживаются для использования внутри сервера (то есть как кодирование на стороне сервера).По умолчанию набор символов выбирается при инициализации кластера базы данных PostgreSQL с помощью initdb. Его можно переопределить при создании база данных, поэтому у вас может быть несколько баз данных с разными набор символов.
Однако важным ограничением является то, что каждая база данных набор символов должен быть совместим с настройками локали базы данных LC_CTYPE (классификация символов) и LC_COLLATE (порядок сортировки строк). Для C или POSIX языковой стандарт, разрешен любой набор символов, но для других языков есть это только один набор символов, который будет работать правильно.(В Windows однако кодировку UTF-8 можно использовать с любой локалью.)
Таблица 22-1 показывает наборы символов, доступные для использования в PostgreSQL.
Таблица 22-1. PostgreSQL Наборы символов
Имя | Описание | Язык | Сервер? | Байт / символ | Псевдонимы |
---|---|---|---|---|---|
BIG5 | Большая пятерка | Традиционный китайский | Нет | 1-2 | WIN950, Windows950 |
EUC_CN | Расширенный код UNIX — CN | Упрощенный китайский | Есть | 1-3 | |
EUC_JP | Расширенный код UNIX-JP | Японский | Есть | 1-3 | |
EUC_JIS_2004 | Расширенный код UNIX-JP, JIS X 0213 | Японский | Есть | 1-3 | |
EUC_KR | Расширенный код UNIX-KR | Корейский | Есть | 1-3 | |
EUC_TW | Расширенный код UNIX-TW | Традиционный китайский, Тайваньский | Есть | 1-3 | |
ГБ18030 | Национальный стандарт | Китайский | Нет | 1–4 | |
ГБК | Расширенный национальный стандарт | Упрощенный китайский | Нет | 1-2 | WIN936, Windows936 |
ISO_8859_5 | ISO 8859-5, ECMA 113 | Латиница / кириллица | Есть | 1 | |
ISO_8859_6 | ISO 8859-6, ECMA 114 | Латинский / арабский | Есть | 1 | |
ISO_8859_7 | ISO 8859-7, ECMA 118 | Латинский / греческий | Есть | 1 | |
ISO_8859_8 | ISO 8859-8, ECMA 121 | Латиница / Иврит | Есть | 1 | |
JOHAB | JOHAB | Корейский (хангыль) | Нет | 1-3 | |
КОИ8Р | КОИ8-Р | Кириллица (русская) | Есть | 1 | КОИ8 |
КОИ8У | КОИ8-У | Кириллица (украинская) | Есть | 1 | |
ЛАТИН 1 | ISO 8859-1, ECMA 94 | Западноевропейская | Есть | 1 | ISO88591 |
ЛАТИН 2 | ISO 8859-2, ECMA 94 | Центральноевропейская | Есть | 1 | ISO88592 |
ЛАТИН 3 | ISO 8859-3, ECMA 94 | Южноевропейский | Есть | 1 | ISO88593 |
ЛАТИН 4 | ISO 8859-4, ECMA 94 | Северо-Европейский | Есть | 1 | ISO88594 |
LATIN5 | ISO 8859-9, ECMA 128 | Турецкий | Есть | 1 | ISO88599 |
LATIN6 | ISO 8859-10, ECMA 144 | Скандинавский | Есть | 1 | ISO885910 |
LATIN7 | ISO 8859-13 | Балтика | Есть | 1 | ISO885913 |
ЛАТИН 8 | ISO 8859-14 | Кельтский | Есть | 1 | ISO885914 |
ЛАТИН 9 | ISO 8859-15 | LATIN1 с евро и акцентами | Есть | 1 | ISO885915 |
ЛАТИН 10 | ISO 8859-16, ASRO SR 14111 | Румынский | Есть | 1 | ISO885916 |
MULE_INTERNAL | Мул внутренний код | Многоязычный Emacs | Есть | 1–4 | |
SJIS | Сдвиг JIS | Японский | Нет | 1-2 | Мсканджи, ShiftJIS, WIN932, Окна932 |
SHIFT_JIS_2004 | Сдвиг JIS, JIS X 0213 | Японский | Нет | 1-2 | |
SQL_ASCII | не указано (см. Текст) | любая | Есть | 1 | |
UHC | Единый код хангыль | Корейский | Нет | 1-2 | WIN949, Windows949 |
UTF8 | Unicode, 8 бит | все | Есть | 1–4 | Юникод |
WIN866 | Окна CP866 | Кириллица | Есть | 1 | ALT |
WIN874 | Окна CP874 | Тайский | Есть | 1 | |
WIN1250 | Окна CP1250 | Центральноевропейская | Есть | 1 | |
WIN1251 | Окна CP1251 | Кириллица | Есть | 1 | ВЫИГРАТЬ |
WIN1252 | Окна CP1252 | Западноевропейская | Есть | 1 | |
WIN1253 | Окна CP1253 | Греческий | Есть | 1 | |
WIN1254 | Окна CP1254 | Турецкий | Есть | 1 | |
WIN1255 | Окна CP1255 | Еврейский | Есть | 1 | |
WIN1256 | Окна CP1256 | Арабский | Есть | 1 | |
WIN1257 | Окна CP1257 | Балтика | Есть | 1 | |
WIN1258 | Окна CP1258 | Вьетнамский | Есть | 1 | ABC, TCVN, TCVN5712, VSCII |
Не все клиентские API поддерживают все перечисленные наборы символов.Например, драйвер PostgreSQL JDBC не поддерживает MULE_INTERNAL, LATIN6, LATIN8 и ЛАТИНСКИЙ 10.
Параметр SQL_ASCII ведет себя значительно отличается от других настроек. Когда сервер набор символов — SQL_ASCII, сервер интерпретирует байтовые значения 0-127 в соответствии со стандартом ASCII, а байтовые значения 128–255 считаются неинтерпретируемыми символами. Нет преобразование кодировки будет выполнено, если установлено значение SQL_ASCII. Таким образом, этот параметр не так уж и хорош. объявление, что используется определенная кодировка, как объявление незнание кодировки.В большинстве случаев, если вы работаете с любыми данными, отличными от ASCII, неразумно использовать параметр SQL_ASCII, потому что PostgreSQL не сможет вам помочь преобразование или проверка символов, отличных от ASCII.
initdb определяет символ по умолчанию установить (кодировку) для PostgreSQL кластер. Например,
initdb -E EUC_JP
устанавливает набор символов по умолчанию на EUC_JP (расширенный код Unix для японского языка). Ты можешь используйте —encoding вместо -E, если вы предпочитаете более длинные строки параметров. Если нет -E или —encoding задана опция, initdb пытается определить подходящую кодировку для использования на основе указанного или языковой стандарт по умолчанию.
Вы можете указать нестандартную кодировку при создании базы данных. время при условии, что кодировка совместима с выбранной язык:
createdb -E EUC_KR -T template0 --lc-collate = ko_KR.euckr --lc-ctype = ko_KR.euckr корейский
Это создаст базу данных с именем korean, которая использует набор символов EUC_KR и локаль ko_KR. Другой способ добиться этого — использовать эту команду SQL:
СОЗДАТЬ БАЗУ ДАННЫХ корейский С КОДИРОВАНИЕМ 'EUC_KR' LC_COLLATE = 'ko_KR.euckr' LC_CTYPE = 'ko_KR.euckr 'TEMPLATE = template0;
Обратите внимание, что приведенные выше команды определяют копирование базы данных template0. При копировании любой другой базы данных, настройки кодировки и локали не могут быть изменены по сравнению с исходной базы данных, поскольку это может привести к повреждению данных. Для дополнительную информацию см. в разделе 21.3.
Кодировка для базы данных хранится в системном каталоге. pg_database. Вы можете увидеть это, используя параметр psql -l или команда \ l.
$ psql -l Список баз данных Имя | Владелец | Кодирование | Сортировка | Ctype | Привилегии доступа ----------- + ---------- + ----------- + ------------- + - ------------ + ------------------------------------- clocaledb | хлиннака | SQL_ASCII | C | C | englishdb | хлиннака | UTF8 | en_GB.UTF8 | en_GB.UTF8 | японский | хлиннака | UTF8 | ja_JP.UTF8 | ja_JP.UTF8 | корейский | хлиннака | EUC_KR | ko_KR.euckr | ko_KR.euckr | postgres | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | template0 | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {= c / hlinnaka, hlinnaka = CTc / hlinnaka} template1 | хлиннака | UTF8 | fi_FI.UTF8 | fi_FI.UTF8 | {= c / hlinnaka, hlinnaka = CTc / hlinnaka} (7 рядов)
Важно: В большинстве современных операционных систем PostgreSQL может определить, какой набор символов подразумевается настройкой LC_CTYPE, и это заставит использовать только соответствующую кодировку базы данных.На старые системы, вы несете ответственность за использование кодировка, ожидаемая выбранной вами локалью. Ошибка в эта область может привести к странному поведению зависящего от локали такие операции, как сортировка.
PostgreSQL позволит суперпользователи для создания баз данных с кодировкой SQL_ASCII, даже если LC_CTYPE не C или POSIX. Как отмечалось выше, SQL_ASCII не требует, чтобы данные, хранящиеся в база данных имеет какую-либо конкретную кодировку, поэтому этот выбор ставит риски ненадлежащего поведения, зависящего от местных условий.Используя эту комбинацию настройки устарели и когда-нибудь могут быть полностью запрещены.
PostgreSQL поддерживает автоматическую преобразование набора символов между сервером и клиентом наверняка комбинации наборов символов. Информация о преобразовании хранится в системный каталог pg_conversion. PostgreSQL поставляется с некоторыми предопределенные преобразования, как показано в Таблице 22-2. Ты может создать новое преобразование с помощью команды SQL CREATE CONVERSION.
Таблица 22-2. Преобразование набора символов клиент / сервер
Набор символов сервера | Доступные наборы символов клиента |
---|---|
BIG5 | не поддерживается в качестве сервера кодировка |
EUC_CN | EUC_CN, MULE_INTERNAL, UTF8 |
EUC_JP | EUC_JP, MULE_INTERNAL, SJIS, UTF8 |
EUC_JIS_2004 | EUC_JIS_2004, SHIFT_JIS_2004, UTF8 |
EUC_KR | EUC_KR, MULE_INTERNAL, UTF8 |
EUC_TW | EUC_TW, BIG5, MULE_INTERNAL, UTF8 |
ГБ18030 | не поддерживается в качестве сервера кодировка |
ГБК | не поддерживается в качестве сервера кодировка |
ISO_8859_5 | ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
ISO_8859_6 | ISO_8859_6, UTF8 |
ISO_8859_7 | ISO_8859_7, UTF8 |
ISO_8859_8 | ISO_8859_8, UTF8 |
JOHAB | не поддерживается в качестве сервера кодировка |
КОИ8Р | KOI8R, ISO_8859_5, MULE_INTERNAL, UTF8, WIN866, WIN1251 |
КОИ8У | КОИ8У, UTF8 |
ЛАТИН 1 | LATIN1, MULE_INTERNAL, UTF8 |
ЛАТИН 2 | LATIN2, MULE_INTERNAL, UTF8, WIN1250 |
ЛАТИН 3 | LATIN3, MULE_INTERNAL, UTF8 |
ЛАТИН 4 | LATIN4, MULE_INTERNAL, UTF8 |
LATIN5 | LATIN5, UTF8 |
LATIN6 | LATIN6, UTF8 |
LATIN7 | LATIN7, UTF8 |
ЛАТИН 8 | LATIN8, UTF8 |
ЛАТИН 9 | LATIN9, UTF8 |
ЛАТИН 10 | LATIN10, UTF8 |
MULE_INTERNAL | MULE_INTERNAL, BIG5, EUC_CN, EUC_JP, EUC_KR, EUC_TW, ISO_8859_5, KOI8R, LATIN1 в LATIN4, SJIS, WIN866, WIN1250, WIN1251 |
SJIS | не поддерживается в качестве сервера кодировка |
SHIFT_JIS_2004 | не поддерживается в качестве сервера кодировка |
SQL_ASCII | любые (конвертации не будет выполнено) |
UHC | не поддерживается в качестве сервера кодировка |
UTF8 | все поддерживаются кодировки |
WIN866 | WIN866, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN1251 |
WIN874 | WIN874, UTF8 |
WIN1250 | WIN1250, LATIN2, MULE_INTERNAL, UTF8 |
WIN1251 | WIN1251, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, WIN866 |
WIN1252 | WIN1252, UTF8 |
WIN1253 | WIN1253, UTF8 |
WIN1254 | WIN1254, UTF8 |
WIN1255 | WIN1255, UTF8 |
WIN1256 | WIN1256, UTF8 |
WIN1257 | WIN1257, UTF8 |
WIN1258 | WIN1258, UTF8 |
Чтобы включить автоматическое преобразование набора символов, вы должны указать PostgreSQL набор символов (кодировка), которую вы хотели бы использовать в клиенте.Есть несколько способов добиться этого:
Использование команды \ encoding в psql. \ encoding позволяет изменять кодировку клиента на муха. Например, чтобы изменить кодировку на SJIS, введите:
.\ кодировка SJIS
libpq (Раздел 31.10) имеет функции для управления клиентская кодировка.
Использование SET client_encoding TO. Параметр кодирование клиента может быть выполнено с помощью этой команды SQL:
SET CLIENT_ENCODING TO 'значение';
Также вы можете использовать стандартный синтаксис SQL SET ИМЕНА для этого:
УСТАНОВИТЬ ИМЯ 'значение';
Для запроса текущей клиентской кодировки:
ПОКАЗАТЬ client_encoding;
Для возврата к кодировке по умолчанию:
СБРОС client_encoding;
Использование PGCLIENTENCODING.Если переменная среды PGCLIENTENCODING равна определена в клиентской среде, эта клиентская кодировка автоматически выбирается при подключении к серверу. (Впоследствии это можно изменить с помощью любого из других методов. упомянуто выше.)
Использование переменной конфигурации client_encoding. Если установлена переменная client_encoding, эта клиентская кодировка выбирается автоматически при подключении к сервер сделан. (Впоследствии это может быть отменено с помощью любого других методов, упомянутых выше.)
Если преобразование определенного символа невозможно — предположим, вы выбрали EUC_JP для сервера и LATIN1 для клиента, а некоторые Возвращаются японские символы, которые не имеют представления в LATIN1 — сообщается об ошибке.
Если набор символов клиента определен как SQL_ASCII, преобразование кодировки отключено, независимо от набора символов сервера. Как и в случае с сервером, использование SQL_ASCII неразумно, если вы не работа с данными в формате ASCII.
Это хорошие источники для начала изучения различных видов системы кодирования.
- CJKV Обработка информации: китайский, Японский, корейский и вьетнамский компьютерные технологии
Содержит подробные объяснения EUC_JP, EUC_CN, EUC_KR, EUC_TW.
- http://www.unicode.org/
Веб-сайт Консорциума Unicode.
- RFC 3629
UTF-8 (8-битный UCS / Unicode Формат преобразования) определяется здесь.
7 фактов о международных SMS-сообщениях
- Вначале был только ASCII. ASCII — это базовый язык, на котором основаны все остальные наборы символов. Символы ASCII — это прописные и строчные буквы от A до Z, а также некоторые основные знаки препинания. ASCII — это универсальный набор символов, каждое устройство везде понимает, что такое ASCII. На заре SMS 20 лет назад символы ASCII были единственными, которые можно было надежно отправить в SMS-сообщении.
- Не все говорят по-английски. Как бы нам ни хотелось, чтобы все говорили на одном языке, и нам не нужны были другие символы для выражения их языка, но это не так. Мир — очень интересное место с невероятным разнообразием знаков, акцентов, символов и знаков препинания. Мы не можем ожидать, что мир будет принимать SMS-сообщения только в формате ASCII.
- Раньше разные языки означали разную кодировку . Раньше, если вы хотели отправить сообщение пользователю в Греции, вам приходилось использовать греческий набор символов.Если вы хотели отправить сообщение покупателю в России, вам нужно было использовать совершенно другой набор символов с кириллическими символами. И у пользователя должен был быть установлен такой же набор символов. Если это звучит сложно, будьте уверены, это было намного хуже, чем кажется!
- Кодировка GSM была создана для решения этой проблемы. По крайней мере, для Западной Европы. Кодировка GSM позволяла отправлять в SMS-сообщениях весь набор символов ASCII, а также множество общих символов с диакритическими знаками.Этот стандарт кодирования также позволяет использовать меньшее количество бит на символ, что означает, что вы можете отправлять 160 символов в SMS вместо 140.
- Введите Unicode. Unicode был задуман как единый код для управления ими всеми. Это новая система представления каждого персонажа, используемого сегодня. Он также включает в себя символы из многих древних языков, и в нем все еще есть много места для других вещей (Emoji, кто-нибудь?). Unicode имеет место для 1,1 миллиона символов, и в настоящее время назначено около 110 000 символов.
- Существуют разные кодировки Unicode. Unicode — большое улучшение, но нам все еще нужно превратить эти символы Unicode в то, что компьютеры могут понять. Есть несколько разных кодировок Unicode. У каждого из них есть свои сильные и слабые стороны. UTF-8 универсален и имеет много сильных сторон, но не всегда хорошо поддерживается в мире мобильных устройств. UTF-16 — еще одна современная кодировка, которая является хорошим выбором, в частности, для азиатских языков, но сокращает длину вашего SMS-сообщения до 70 символов.UCS-2 — это более старая версия UTF-16, но она по-прежнему требуется для многих устройств.
- Каждый провайдер отличается. Было бы здорово, если бы все операторы SMS и агрегаторы поддерживали одни и те же кодировки одинаково и единообразно по всему миру. Они этого не делают. (Но вы уже знали об этом, не так ли?) Большинство операторов связи в Европе поддерживают набор символов GSM, а в США — нет. Японские операторы связи иногда поддерживают кодировку Shift-JIS. Некоторые операторы могут обрабатывать UTF-8, некоторые настаивают на UCS-2.
Хорошо, я понял, международные SMS — это сложно, что теперь?
Если вашему бизнесу нужен международный выход с помощью SMS, обязательно задайте эти вопросы любому потенциальному поставщику:
- В какие страны вы поддерживаете отправку SMS-сообщений? Если вам нужен глобальный охват, убедитесь, что ваш провайдер поддерживает интересующие вас страны. Многие агрегаторы специализируются на определенных странах или регионах. Лишь немногие имеют всемирный охват.
- Какие языки и кодировки поддерживает ваш провайдер? Поставщики услуг в США могут поддерживать отправку сообщений только в формате ASCII. Европейские провайдеры наверняка поддерживают GSM. Лучшие провайдеры позволят вам отправлять им сообщения в UTF-8 и выполнять любые необходимые преобразования за вас.
- Ваш провайдер автоматически нормализует сообщения, когда это необходимо? Если вы пытаетесь отправить сообщение, а получатель не может получить его на том языке, на котором вы его отправили, пытается ли ваш провайдер отправить его как обычный ASCII автоматически?
Понимание всех тонкостей международного обмена SMS-сообщениями может быть сложной задачей, особенно если ваш провайдер не оказывает вам особой помощи.Однако, если глобальный охват является необходимостью для вашего бизнеса, найдите время, чтобы найти поставщика, который понимает эти детали, может облегчить вам жизнь.
Руководство пользователя Глава 6: Поддержка Unicode и не-ASCII
Глава 6. Поддержка Unicode и не-ASCII
6.1 Формат для печати в кавычках
6.2 Символы, отличные от ASCII в заголовках
6.3 Unicode и UTF-8
6.4 Поддержка UTF-8 в AspEmail
6.5 допустимых значений CharSet
6.1 Формат цитируемой печати
AspEmail может отправлять сообщения в алфавитах, отличных от US-ASCII. за счет поддержки формата «Цитата для печати». Этот формат описан в RFC-2045. Идея формата заключается в том, что символы с кодами меньше 33 и больше чем 126 представлены знаком «=», за которым следует двузначное шестнадцатеричное представление. ценности персонажа. Например, десятичное значение 12 (подача формы US-ASCII) представлен как = 0C , а десятичное значение 61 (US-ASCII «=») может быть представлено как = 3D .AspEmail кодирует тело сообщения в формате Quoted-Printable автоматически, если для свойства ContentTransferEncoding установлено значение строка «Quoted-Printable» (регистр букв не имеет значения). Вы также можете установить свойство Charset к соответствующему набору символов. Следующий фрагмент кода отправляет сообщение на русском языке:
<% @ codepage = 1251%>
<%
…
Почта.Кодировка = «Windows-1251»
Mail.Body = «-«.
Mail.ContentTransferEncoding = «Цитата для печати»
%>Директива <% @ codepage = 1251%> предписывает интерпретатор ASP для обработки жестко запрограммированных символов в сценарии в виде русских символов (1251 — русская кодовая страница). Как результат, свойство Body получит русскую строку Unicode.
6.2 символа не-ASCII в заголовках
Если вы хотите отправить сообщение с определенными заголовками, такими как Тема: , To: или From: , содержащие символы, отличные от US-ASCII, следует использовать метод Mail.EncodeHeader для кодирования строки символов в соответствии с RFC 1522. Метод принимает один обязательный параметр, строку заголовка, и один необязательный параметр, набор символов, который по умолчанию равен « ISO-8859-1 ».Например:<% @ codepage = 1251%>
<%
Mail.Subject = Mail.EncodeHeader («-«, «Windows-1251»)
Mail.FromName = Mail.EncodeHeader («», «Windows-1251»)
Mail.AddAddress «[email protected]», Mail.EncodeHeader («»)
%>
6.3 Юникод и UTF-8
Из MSDN: «Юникод — это 16-битный стандарт кодировки символов фиксированной ширины, который охватывает практически все символы, обычно используемые на компьютерах сегодня.Это включает в себя большинство письменных языков мира, а также издательские персонажи, математические и технические символы и знаки препинания «.Из Unicode.org: «Компьютеры … хранят буквы и другие символы присвоение номера каждому. До изобретения Unicode существовало сотни различных систем кодирования для присвоения этих чисел. Ни одна кодировка не может содержать достаточно символов … Unicode предоставляет уникальный номер для каждого символа, независимо от того, какая платформа, какая программа, на каком языке.«
Например, основная латинская буква «А» имеет шестнадцатеричный код 0041 (65), русский буква имеет код Hex 0416 (1046), а китайский иероглиф имеет код Hex 32A5 (12965).
UTF-8 (формат преобразования Unicode, 8-битная форма кодирования) рекомендуется формат, который будет использоваться для отправки данных на основе Unicode по сетям, в частности, через Интернет. UTF-8 представляет значение Unicode как последовательность из 1, 2 или 3 байтов.
Символы Юникода в диапазоне от 0000 до 007F кодируются просто как байты. 00 до 7F. Это означает, что файлы и строки, содержащие только 7-битный ASCII символы имеют одинаковую кодировку как в ASCII, так и в UTF-8. Следовательно, Unicode 0041 («A») в UTF-8 — это Hex 41.
Символы Юникода в диапазоне от 0080 до 07FF кодируются как последовательность из двух байтов. Например, Unicode 0416 () кодируется как Hex D0 96. Кодируются символы Unicode в диапазоне от Hex 0800 до FFFF. как последовательность из трех байтов.Например, Unicode 32A5 () кодируется как Hex E3 8A A5.
6.4 Поддержка UTF-8 в AspEmail
AspEmail 5.0 предлагает полную поддержку UTF-8 как в теле сообщения, так и в заголовках. Чтобы отправить сообщение в кодировке UTF-8, вы должны установить CharSet свойство к строке « UTF-8 » (регистр не имеет значения), и ContentTransferEncoding на « Quoted-Printable ».Вы также должны передать UTF-8 в качестве второго аргумента для EncodeHeader .В следующем примере кода демонстрируется использование UTF-8:
<%
‘изменить на адрес вашего собственного SMTP-сервера
strHost = «smtp.myisp.net»‘Включить UTF-8 -> Перевод Unicode для элементов формы
Session.CodePage = 65001 ‘Код UTF-8Если Запрос («Отправить») «» То
Установите Mail = Server.CreateObject («Persits.MailSender»)
‘введите действительный SMTP-хост
Mail.Host = strHostMail.From = «[email protected]» ‘с адреса
Mail.FromName = Mail.EncodeHeader (Запрос («FromName»), «utf-8»)
Mail.AddAddress Request («Кому»)‘тема сообщения
Mail.Subject = Mail.EncodeHeader (Запрос («Тема»), «utf-8»)‘тело сообщения
Mail.Body = Request («Body»)‘Параметры UTF-8
Почта.CharSet = «UTF-8»
Mail.ContentTransferEncoding = «Цитата для печати»
Mail.Send ‘отправить сообщение
Response.Write «Сообщение отправлено» & Request («To»)
Конец, если
%>
AspEmail: Unicode.asp
<ТЕЛО>