Кодировочная таблица windows 1251: Используя кодовая таблица ср 1251 windows cyrillic.

Содержание

Используя кодовая таблица ср 1251 windows cyrillic.

Не каждый человек обладает большими познаниями в компьютерной технике.

Что такое windows-1251 кодировка и какую роль играет в работе компьютера предстоит узнать.

Что это такое?

Кодировка 1251 представляет собой совокупность символов, которая составляет восьми-битную систему для русифицированных устройств.

Стоит отметить, что довольное широкое применение она нашла на территории Европы.

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

Немного из истории

С наступлением 90-х годов, после распада СССР, границы России стали открыты.

Поэтому на территорию страны стало постепенно проникать оборудование из европейских стран.

Изначально все они были запрограммированы на английском языке.

В этот же промежуток времени начинает активно распространяться интернет.

В результате стало необходимо как можно быстрее русифицировать все оборудование и программное обеспечение. В связи с данной необходимостью появилась кодировка 1251. С ее помощью на компьютерах корректно отображаются .

А значит стало возможным использовать компьютеры со следующими языками:

  • Русский
  • Белорусский
  • Украинский
  • Сербский
  • Болгарский
  • Македонский.

Совместно с двумя российскими компаниями «Параграф» и «Диалог» , представительства компании начали активно заниматься разработкой данной кодировки.

В качестве основы были использованы обыкновенные самостоятельно написанные разработки.

Однако технический прогресс не стоит на месте, поэтому в последнее время широкое применение нашел Юникод UTF-8.

UTF-8 против 1251

Вся информация, которая хранится на компьютере, имеет кодированный вид.

Можно предположить, что символ имеет вес порядком 1 байт. 1251 – это разновидность кодировки однобайтовой, а

UTF-8 – восьмибайтная.

Отсюда можно сделать вывод, что первый вариант способен к программированию 256 знаков.

Что касается второго варианта, то он представляет большее количество. Кроме того, для этого выделяют большой размер.

Можно сделать вывод, что оба варианта имеют следующие отличия:

  • В верхней части необходимо указывать кодировку, которая необходима для использования . В противном случае, вместо обыкновенных символов появляются нечитаемые иероглифы. Используя (которая считается более универсальной кодировкой), все переводы и расшифровки осуществляются в автоматическом режиме
  • Вне зависимости от того, на территории какой страны будет загружаться страница, символика останется без изменения. Важно отметить, что местоположение в данном случае не играет абсолютно никакой роли. Главное обращать внимание на языковые серверы, используемые пользователем. Каждый человек обращается к программному обеспечению на родном языке. Для жителей Европы, 1251 будет недоступна в силу использования латиницы. Соответственно можно сделать вывод о том, что русскоязычные сайты не будут открывать в корректном формате. Что касается , то он присутствует в любой ОС
  • Второй вид имеет возможность кодировки большего количества символов. На сегодняшний день стоит отметить 6 и 8 байт. Что касается кириллицы, то для ее кодировки достаточно двух байт.

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

Чтобы символы можно было запомнить быстро и просто, чаще всего используют следующую таблицу:

Инструкция по восстановлению кодировки

Ситуация, когда в командной строке присутствуют непонятные символы, вопросительные знаки или иероглифы довольна распространенная.

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

Сразу стоит отметить, что это первый признак того, что в седьмом Windows слетела кодировка 1251.

С восьмой версии активно используют UTF-8.

Для того, чтобы решить задачу максимально быстро, возможно использование команды CHCP 866, но это только временная мера и в полной мере проблему она не решит.

Как правило, реестр используется для основательного решения проблемы:

  • Чтобы вызвать , нажимаем сочетание клавиш Win и R . Пишем regedit, при помощи которого открывается специальный реестр

  • Как показано на рисунке, находим соответствующую папку HKEY_CURRENT_USER далее выбираем Console . Далее смотрим какой код задан для страниц (Code Page). В том случае, если там стоит число не 866, что скорее всего так и будет, значит проблема была определена верно

  • Исправляем в строке на десятичное значение
  • Чтобы править, произошли ли изменения, достаточно открыть и снова вызвать командную строчку.
3 голоса

Здравствуйте, уважаемые читатели моего блога. Сегодня мы поговорим с вами про кодировку. Если вы читали мою статью о том, то знаете, что любой документ в интернете хранится не в том виде, в каком мы привыкли его видеть. Он записан при помощи непонятных человеку символов и знаков. С текстом все точно также.

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

Кодировка windows-1251 – что это такое, какое значение она имеет при создании сайта, какие символы будут доступны и является ли она лучшим решением на сегодняшний день? Обо всем этом в сегодняшней статье. Как всегда, простым языком, максимально понятно и с минимальным количеством терминов.

Немного теории

Любой документ на компьютере или в интернете, как я уже сказал, хранится в виде двоичного кода. К примеру, если вы используете кодировку ASCII, то буква «К» будет записана как 10001010, а windows 1251 под этим числом скрывается символ – Љ. В итоге, если браузер или программа обратится к другой таблице и считает вместо ASCII коды windows 1251, то читатель увидит совершенно непонятные ему символ.

Логичен вопрос, нафига было придумывать множество таблиц с кодами? Дело в том, что помимо русского алфавита существует еще и английский, немецкий, китайский. По некоторым подсчетам, существует около 200 000 символов. Хотя, я не очень доверяю этой статистике, вспоминая про японский.

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

Чем больше в таблице символов, тем длиннее код каждого из них, а значит и вес документа становится больше.

Представьте, если бы одна книга весила 4 Гб! Она бы очень долго загружалась, занимала все свободное место на компьютере. Решение о скачивании представлялось бы делом нелегким.

Если вспомнить о сайтах, то вообще страшно подумать, что бы произошло. Каждая страничка открывалась даже на скоростном оптоволокне по часу с лишним! Думаю, мобильные телефоны можно было бы смело выкидывать. Пользоваться ими на улице даже с 4G? Сомневаюсь.

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

Microsoft, к примеру, для русскоязычного сегмента создали windows-1251. В ней, конечно же, есть свои достоинства и недостатки. Как и у любого другого продукта.

Сейчас уже, лишь 2% всех страниц в интернете написано на 1251. Большинство веб-мастеров используют UTF-8. Почему так?

Недостатки и достоинства

UTF-8, в отличие от windows-1251 универсальная кодировка, в ней содержатся буквы различных алфавитов. Существует даже UTF-128, где есть вообще все языки – теулу, суахили, лаосский, мальтийский и так далее.

UTF-8 победнее, буквы занимают в разы меньше места и занимают всего один байт памяти, как и в 1251. В УТФ есть редкие символы из других языков или специальные символы. Они-то и весят по 5-6 байтов, но в документе используются крайне редко.

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

Когда вы создаете html документ для сайта, то указываете браузерам на какую таблицу им обращать внимание при расшифровке записей.

Для этого необходимо вставить в тег head следующие данные. После символов «charset=» идет либо утф, либо виндовс, как в примере ниже.

meta http-equiv = «Content-Type» content = «text/html; charset=windows-1251» >

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

Если вас заинтересовало правильное создание сайта, то я могу порекомендовать вам курс Михаила Русакова «Создание и Раскрутка сайта от А до Я ».


Он содержит в себе очень много – 256 уроков, затрагивающих , JavaScript, и XML. Помимо языков программирования вы сможете понять как монетизировать сайт, то есть скорее и больше получать прибыль. Один из немногих курсов, в котором было бы так подробно разъяснено все, что нужно.

Сам я вот уже год обучаюсь в школе блоггеров Александра Борисова . Это занимает в разы больше времени, конца и края пока не видно, но зато не менее исчерпывающе и дисциплинирует. Мотивирует продолжать разработку.

Ну а если возникают вопросы, не нужно искать по интернету. Всегда есть грамотный наставник.


Что-то я отошел от темы. Давайте вернемся к кодировкам.

Базы банных

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

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

Пока не нужен перенос все работает и функционирует, хоть и не совсем правильно. Но после переезда начинаются неприятности. В идеале вы должны использовать либо только УТФ, либо виндовс-1251, но по факту всегда и у всех случаются вот такие недочеты.

Чтобы расшифровка согласовалась необходимо вписать код mysql_query(«SET NAMES cp1251»). В этом случае преобразование будет осуществлять по другому протоколу – cp1251.

Htaccess

Если на сайте вы настойчиво решили использовать именно 1251, то вам следует найти или создать файл htaccess. Он отвечает за настройки конфигурации. В него придется добавить еще три строчки, чтобы все сошлось.

DefaultLanguage ru; AddDefaultCharset windows-1251; php_value default_charset «cp1251»

DefaultLanguage ru; AddDefaultCharset windows-1251; php_value default_charset «cp1251»

Я все же настоятельно рекомендую вам задумать о использовании UTF-8. Он более популярен, прост и богат. Какие бы решения вы не приняли сейчас, важно, чтобы впоследствии можно было все исправить. Добавить англоязычную версию сайта на этой кодировке будет в разы проще. Ничего не нужно исправлять.

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

До новых встреч и удачи в ваших начинаниях.

Кодировка windows 1251 была создана в начале 90 годов для русификации программных продуктов, выпускаемых корпорацией Microsoft :

Кодировка является 8-битной и включает в себя символы славянской группы языков, в которую входят русский, белорусский, украинский, болгарский, македонский, сербский – это дает преимущество перед остальными кириллическими кодировками (ISO 8859-5, KOI8-R, CP866 ). Однако у 1251-кодировки имеются и весомые недостатки:

  • 0xFF (25510) – это код, который зарезервирован для символа «я». В программах, которые не поддерживают чистый 8-ой бит, часто возникают непредсказуемые проблемы;
  • Нет псевдографики, которая присутствует в KOI8 , CP866 .

Ниже приведены символы из Code Page 1251 или сокращенно СР1251 (числа под символами являются кодом в шестнадцатеричной системе такого же символа в Юникоде ):


Кодировка windows 1251 в html

Нередко у web-разработчиков и блогеров, обладающих различной квалификацией возникает проблема с кодировкой страниц: вместо подготовленного текста появляются неизвестные, нечитаемые символы. Чтобы разобраться с данной проблемой, необходимо понимать суть термина «кодировка страницы ».

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

Таблица кодировок не является универсальной, то есть, для расшифровки текста необходимо использовать ту, которая соответствует кодировке символов:


Для того чтобы html-документ корректно отобразился в браузере, необходимо указать используемую кодировку. Делается это следующим образом:

— между тегом

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

Кодировка windows 1251 в PHP

Ни для кого не является тайной, что генерация страниц проходит путем выборки и использования какой-то части информации, которая хранится в базе данных. При написании сайта на PHP , чаще всего это mysql :


Нередко при смене хостинга возникает проблема: различные кодировки информации в базе данных и в шаблонах страниц. Из-за этого одна сгенерированная страница может одновременно содержать несколько кодировок. Если информация на сайте представлена в кодировке виндовс 1251 , то и чтение из базы данных должно осуществляться с помощью таблицы, в которой представлена win 1251 кодировка.

Для согласования расшифровки необходимо выполнить функцию mysql_query(«SET NAMES cp1251») – это означает, что преобразование из машинного кода будет осуществляться согласно таблице cp1251 .

Кодировка windows 1251 в htaccess

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

Для того чтобы для веб-ресурса была задана кодировка виндовс-1251 , необходимо найти (или создать ) файл .htaccess . Это файл, который хранит в себе дополнительные настройки и описания конфигураций web-сервера.

В нем для установки кодировки следует прописать следующие строки:

  • DefaultLanguage ru;
  • AddDefaultCharset windows-1251;
  • php_value default_charset «cp1251».

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

Хорошо Плохо

Сегодня мы поговорим с вами про то, откуда берутся кракозябры на сайте и в программах, какие кодировки текста существуют и какие из них следует использовать. Подробно рассмотрим историю их развития, начиная от базовой ASCII, а также ее расширенных версий CP866, KOI8-R, Windows 1251 и заканчивая современными кодировками консорциума Юникод UTF 16 и 8. Оглавление:

  • Расширенные версии Аски — кодировки CP866 и KOI8-R
  • Windows 1251 — вариация ASCII и почему вылезают кракозябры
Кому-то эти сведения могут показаться излишними, но знали бы вы, сколько мне приходит вопросов именно касаемо вылезших кракозябров (не читаемого набора символов). Теперь у меня будет возможность отсылать всех к тексту этой статьи и самостоятельно отыскивать свои косяки. Ну что же, приготовьтесь впитывать информацию и постарайтесь следить за ходом повествования.

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, то эти самые кракозябры (бессмысленный набор знаков) и вылезут, полностью заменив собой текст сообщения. Аналогичная ситуация очень часто возникает при создании и настройке сайтов, форумов или блогов, когда текст с русскими символами по ошибке сохраняется не в той кодировке, которая используется на сайте по умолчанию, или же не в том текстовом редакторе, который добавляет в код отсебятину не видимую невооруженным глазом. В конце концов такая ситуация с множеством кодировок и постоянно вылезающими кракозябрами многим надоела, появились предпосылки к созданию новой универсальной вариации, которая бы заменила собой все существующие и решила бы, наконец, на корню проблему с появлением не читаемых текстов. Кроме этого существовала проблема языков подобных китайскому, где символов языка было гораздо больше, чем 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 следует во избежании появления кракозябров выбирать вариант UTF 8 без BOM . А что такое приставка BOM? Дело в том, что когда разрабатывали кодировку ЮТФ-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 можно будет опустить (кодировка будет считаться UTF-8, если нет BOM или ЮТФ-16, если BOM есть). В случае же документа языка Html для указания кодировки используется элемент Meta , который прописывается между открывающим и закрывающим тегом Head: . . . . . . Эта запись довольно сильно отличается от принятой в стандарте в Html 4.01, но полностью соответствует новому внедряемому потихоньку стандарту Html 5, и она будет стопроцентно правильно понята любыми используемыми на текущий момент браузерами. По идее, элемент Meta с указание кодировки Html документа лучше будет ставить как можно выше в шапке документа , чтобы на момент встречи в тексте первого знака не из базовой ANSI (которые правильно прочитаются всегда и в любой вариации) браузер уже должен иметь информацию о том, как интерпретировать коды этих символов. Ссылка на перво

Рекомендуем также

Кодовые страницы — Школа N61 г.Ульяновска

На конец 20-го века существовало пять различных кодировок кириллицы (КОИ8-Р, Windows-1251, 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.

В конце 20-го века наиболее распространенной была кодировка Microsoft Windows обозначаемая сокращением CP1251. Введена компанией Microsoft; с учетом широкого распространения операционных систем (ОС) и других программных продуктов этой компании в Российской Федерации она нашла широкое распространение.

С конца 90-х годов проблема стандартизации символьного кодирования решается введением нового международного стандарта который называется Unicode.

Это 16-разрядная кодировка т.е. в ней на каждый символ отводится 2 байта памяти. Конечно при этом объем занимаемой памяти увеличивается в 2 раза. Но зато такая кодовая таблица допускает включение до 65536 символов. Полная спецификация стандарта Unicode включает в себя все существующие вымершие и искусственно созданные алфавиты мира а также множество математических музыкальных химических и прочих символов.

Внутреннее представление слов в памяти компьютера с помощью таблицы ASCII

Слова

Память

file 01100110
01101001
01101100
01100101
disk 01100100
01101001
01110011
01101011

Иногда бывает так что текст состоящий из букв русского алфавита полученный с другого компьютера невозможно прочитать — на экране монитора видна какая-то «абракадабра». Это происходит оттого что на компьютерах применяется разная кодировка символов русского языка.

Таким образом каждая кодировка задается своей собственной кодовой таблицей. Как видно из таблицы одному и тому же двоичному коду в различных кодировках поставлены в соответ-ствие различные символы.


Сравнительная таблица части кодов разных кодировок русского языка

Кодовая
старница
Код
символа
cим
вол
65 / 97
193 / 225
66 / 98
194 / 226
67 / 99
195 / 227
68 / 100
196 / 228
69 / 101
197 / 229
70 / 102
198 / 230
71 / 103
199 / 231
72 / 104
200 / 232
ASCII 0000 0000   :) 65 0100 0001 A 0100 0010 B 0100 0011 C 0100 0100 D 0100 0101 E 0100 0110 F 0100 0111 G 0100 1000 H
koi8-r 1000 0000 - 193 1100 0001 а 1100 0010 б 1100 0011 ц 1100 0100 д 1100 0101 е 1100 0110 ф 1100 0111 г 1100 1000 х
ASCII 0000 0000   97 0110 0001 a 0110 0010 b 0110 0011 c 0110 0100 d 0110 0101 e 0110 0110 f 0110 0111 g 0110 1000 h
koi8-r 1000 0000   225 1110 0001 А 1110 0010 Б 1110 0011 Ц 1110 0100 Д 1110 0101 Е 1110 0110 Ф 1110 0111 Г 1110 1000 Х
CP866 1000 0000 А Б 225 1110 0001 с 1110 0010 т 1110 0011 у 1110 0100 ф 1110 0101 х 1110 0110 ц 1110 0111 ч 1110 1000 ш
ISO 8859-5 1000 0000 [] 225 1110 0001 с 1110 0010 т 1110 0011 у 1110 0100 ф 1110 0101 х 1110 0110 ц 1110 0111 ч 1110 1000 ш
MAC 1000 0000 А Б 225 1110 0001 б 1110 0010 в 1110 0011 г 1110 0100 д 1110 0101 е 1110 0110 ж 1110 0111 з 1110 1000 и
CP1251 1000 0000 Á à 225 1110 0001 б 1110 0010 в 1110 0011 г 1110 0100 д 1110 0101 е 1110 0110 ж 1110 0111 з 1110 1000 и

PHP: Краткий обзор поддерживаемых кодировок

ISO-10646-UCS-4ISO 10646 Универсальный набор символов с 31 битом для кода символа, стандартизованный в ISO/IEC 10646 как UCS-4. Установлена синхронизация со стандартом Юникод. Если это название используется в средствах преобразования кодировок, конвертер попытается определить порядок расположения байтов по BOM (метка порядка байтов).
ISO-10646-UCS-4UCS-4 Смотрите выше. В отличие от UCS-4, строки всегда принимаются закодированными в прямом порядке расположения байтов.
ISO-10646-UCS-4UCS-4 Смотрите выше. В отличие от UCS-4, строки всегда принимаются закодированными в обратном порядке расположения байтов.
ISO-10646-UCS-2UCS-2 Универсальный набор символов с 16 битом для кода символа, стандартизованный в ISO/IEC 10646 как UCS-2. Установлена синхронизация со стандартом Юникод. Если это название используется в средствах преобразования кодировок, конвертер попытается определить порядок расположения байтов по BOM (метка порядка байтов).
ISO-10646-UCS-2UCS-2 Смотрите выше. В отличие от UCS-2, строки всегда принимаются закодированными в прямом порядке расположения байтов.
ISO-10646-UCS-2UCS-2 Смотрите выше. В отличие от UCS-2, строки всегда принимаются закодированными в обратном порядке расположения байтов.
UTF-32Юникод Формат преобразования Юникода с 32-битной шириной символа, кодовое пространство которого соответствует стандарту кодовой таблицы Юникода. Эта схема кодирования не идентична UCS-4, так как кодовое пространство Юникода ограничено 21-м битом. Если это название используется в средствах преобразования кодировок, конвертер попытается определить порядок расположения байтов по BOM (метка порядка байтов).
UTF-32BEЮникодСмотрите выше В отличие от UTF-32, строки всегда принимаются закодированными в прямом порядке расположения байтов.
UTF-32LEЮникодСмотрите выше В отличие от UTF-32, строки всегда принимаются закодированными в обратном порядке расположения байтов.
UTF-16Юникод Формат преобразования Юникода с 32-битной шириной кода символа. Спецификация UTF-16 отличается от UCS-2 ввиду того, что начиная с Юникод 2.0 был внедрён механизм замещения символов и теперь UTF-16 ссылается на 21-битное кодовое пространство. Если это название используется в средствах преобразования кодировок, конвертер попытается определить порядок расположения байтов по BOM (метка порядка байтов).
UTF-16BEЮникод Смотрите выше. В отличие от UTF-16, строки всегда принимаются закодированными в прямом порядке расположения байтов.
UTF-16LEЮникод Смотрите выше. В отличие от UTF-16, строки всегда принимаются закодированными в обратном порядке расположения байтов.
UTF-8Юникод / UCS Формат преобразования Юникода с 32-битной шириной кода символа.нет
UTF-7Юникод Безопасный для почтовых программ и решений формат преобразования Юникода, определённый в спецификации » RFC2152.нет
(нет)Юникод Разновидность UTF-7, специально разработанная для использования в » протоколе IMAP.нет
US-ASCII (предпочитаемое MIME-имя) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCIIASCII / ISO 646 ASCII (American Standard Code for Information Interchange — американский стандартный код для обмена информацией) — широко используемая 7-битная кодировка. Также стандартизована как международный стандарт ISO 646.(нет)
EUC-JP (предпочитаемое MIME-имя) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese Объединение US-ASCII / JIS X0201:1997 (часть hankaku kana) / JIS X0208:1990 / JIS X0212:1990 Как видно из названия, эта кодировка используется в основном в Unix системах или им подобных. Исходная схема кодирования Extended UNIX Code легла в основу стандарта ISO 2022. Набор символов, на который ссылается EUC-JP отличен от набора для IBM932 / CP932, которые используются в OS/2® и Microsoft® Windows®. Для обеспечения взаимодействия между этими платформами используйте кодировку EUCJP-WIN.
Shift_JIS (предпочитаемое MIME-имя) / MS_Kanji / csShift_JISОбъединение JIS X0201:1997 / JIS X0208:1997 Shift_JIS был разработан в начале 80-х, когда Японские текстовые процессоры для рядовых пользователей только выходили на рынок, чтобы сохранить совместимость со схемой кодирования JIS X 0201:1976. В соответствии с определением IANA, кодовая таблица Shift_JIS несколько отличается от IBM932 / CP932. Тем не менее, названия «SJIS» / «Shift_JIS» ошибочно используются для обращения к этим кодовым таблицам.Для кодовой таблицы CP932, используйте кодировку SJIS-WIN.
(none) Объединение JIS X0201:1997 / JIS X0208:1997 / IBM расширения / NEC расширения Несмотря на то, что эта «кодировка» использует ту же схему кодирования, что и EUC-JP, наборы символов, лежащий в их основе, различны. Таким образом, некоторые коды ссылаются на отличные от EUC-JP символы.нет
Windows-31J / csWindows31J Объединение JIS X0201:1997 / JIS X0208:1997 / IBM расширения / NEC расширения Несмотря на то, что эта «кодировка» использует ту же схему кодирования, что и Shift_JIS, наборы символов, лежащий в их основе, различны. Таким образом, некоторые коды ссылаются на отличные от Shift_JIS символы.(нет)
ISO-2022-JP (предпочитаемое MIME-имя) / csISO2022JP US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983» RFC1468(нет)
JIS
ISO-8859-1
ISO-8859-2
ISO-8859-3
ISO-8859-4
ISO-8859-5
ISO-8859-6
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-8859-10
ISO-8859-13
ISO-8859-14
ISO-8859-15
ISO-8859-16
byte2be
byte2le
byte4be
byte4le
BASE64
HTML-ENTITIES
7bit
8bit
EUC-CN
CP936
HZ
EUC-TW
CP950
BIG-5
EUC-KR
UHC (CP949)
ISO-2022-KR
Windows-1251 (CP1251)
Windows-1252 (CP1252)
CP866 (IBM866)
KOI8-R
KOI8-U

Ирландский язык кодовая страница windows.

Windows-1251 — набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Данная кодировка пользуется довольно большой популярностью в восточно-европейских странах. Windows-1251 выгодно отличается от других 8-битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в традиционной русской типографике для обычного текста (отсутствует только знак ударения). Кириллические символы идут в алфавитном порядке.
Windows-1251 также содержит все символы для близких к русскому языку языков: белорусского, украинского, сербского, македонского и болгарского.
На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в интернете вплоть до распространения UTF-8.

Таблица кодов символов Windows-1251

DecHexСимволDecHexСимвол
00000NOP12880Ђ
00101SOH12981Ѓ
00202STX13082
00303ETX13183ѓ
00404EOT13284
00505ENQ13385
00606ACK13486
00707BEL13587
00808BS13688
00909TAB13789
0100ALF1388AЉ
0110BVT1398B
0120CFF1408CЊ
0130DCR1418DЌ
0140ESO1428EЋ
0150FSI1438FЏ
01610DLE14490ђ
01711DC114591
01812DC214692
01913DC314793
02014DC414894
02115NAK14995
02216SYN15096
02317ETB15197
02418CAN15298
02519EM15399
0261ASUB1549Aљ
0271BESC1559B
0281CFS1569Cњ
0291DGS1579Dќ
0301ERS1589Eћ
0311FUS1599Fџ
03220SP160A0
03321!161A1Ў
03422»162A2ў
03523#163A3Ћ
03624$164A4¤
03725%165A5Ґ
03826&166A6¦
03927»167A7§
04028(168A8Ё
04129)169A9©
0422A*170AAЄ
0432B+171AB«
0442C,172AC¬
0452D173AD­
0462E.174AE®
0472F/175AFЇ
048300176B0°
049311177B1±
050322178B2І
051333179B3і
052344180B4ґ
053355181B5µ
054366182B6
055377183B7·
056388184B8ё
057399185B9
0583A:186BAє
0593B;187BB»
0603C188BCј
0613D=189BDЅ
0623E>190BEѕ
0633F?191BFї
06440@192C0А
06541A193C1Б
06642B194C2В
06743C195C3Г
06844D196C4Д
06945E197C5Е
07046F198C6Ж
07147G199C7З
07248H200C8И
07349I201C9Й
0744AJ202CAК
0754BK203CBЛ
0764CL204CCМ
0774DM205CDН
0784EN206CEО
0794FO207CFП
08050P208D0Р
08151Q209D1С
08252R210D2Т
08353S211D3У
08454T212D4Ф
08555U213D5Х
08656V214D6Ц
08757W215D7Ч
08858X216D8Ш
08959Y217D9Щ
0905AZ218DAЪ
0915B[219DBЫ
0925C\220DCЬ
0935D]221DDЭ
0945E^222DEЮ
0955F_223DFЯ
09660`224E0а
09761a225E1б
09862b226E2в
09963c227E3г
10064d228E4д
10165e229E5е
10266f230E6ж
10367g231E7з
10468h232E8и
10569i233E9й
1066Aj234EAк
1076Bk235EBл
1086Cl236ECм
1096Dm237EDн
1106En238EEо
1116Fo239EFп
11270p240F0р
11371q241F1с
11472r242F2т
11573s243F3у
11674t244F4ф
11775u245F5х
11876v246F6ц
11977w247F7ч
12078x248F8ш
12179y249F9щ
1227Az250FAъ
1237B{251FBы
1247C|252FCь
1257D}253FDэ
1267E~254FEю
1277FDEL255FFя

Описание специальных (управляющих) символов

Первоначально управляющие символы таблицы ASCII (диапазон 00-31, плюс 127) были разработаны для того, чтобы управлять устройствами аппаратных средств, таких как телетайп, ввод данных на перфоленту и др.
Управляющие символы (кроме горизонтальной табуляции, перевода строки и возврата каретки) не используются в HTML-документах.

Cпециальные (управляющие) символы

Код Описание
NUL, 00Null, пустой
SOH, 01Start Of Heading, начало заголовка
STX, 02Start of TeXt, начало текста
ETX, 03End of TeXt, конец текста
EOT, 04End of Transmission, конец передачи
ENQ, 05Enquire. Прошу подтверждения
ACK, 06Acknowledgement. Подтверждаю
BEL, 07Bell, звонок
BS, 08Backspace, возврат на один символ назад
TAB, 09Tab, горизонтальная табуляция
LF, 0ALine Feed, перевод строки
Сейчас в большинстве языков программирования обозначается как \n
VT, 0BVertical Tab, вертикальная табуляция
FF, 0CForm Feed, прогон страницы, новая страница
CR, 0DCarriage Return, возврат каретки
Сейчас в большинстве языков программирования обозначается как \r
SO, 0EShift Out, изменить цвет красящей ленты в печатающем устройстве
SI, 0FShift In, вернуть цвет красящей ленты в печатающем устройстве обратно
DLE, 10Data Link Escape, переключение канала на передачу данных
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Device Control, символы управления устройствами
NAK, 15Negative Acknowledgment, не подтверждаю
SYN, 16Synchronization. Символ синхронизации
ETB, 17End of Text Block, конец текстового блока
CAN, 18Cancel, отмена переданного ранее
EM, 19End of Medium, конец носителя данных
SUB, 1ASubstitute, подставить. Ставится на месте символа, значение которого было потеряно или испорчено при передаче
ESC, 1BEscape Управляющая последовательность
FS, 1CFile Separator, разделитель файлов
GS, 1DGroup Separator, разделитель групп
RS, 1ERecord Separator, разделитель записей
US, 1FUnit Separator, разделитель юнитов
DEL, 7FDelete, стереть последний символ.

Как известно, Windows 10 поддерживает установку языковых пакетов, с помощью которых можно изменять локализацию интерфейса операционной системы. С этим очень близко связано понятие системного языка. Системный язык это не тот, который был добавлен с помощью языкового пакета, а тот, который был выбран при установке самой системы. Если вы работаете на корпоративном компьютере, язык которого менялся посредством установки MUI -пакетов, возможно, вы захотите узнать, какой язык использовался в системе изначально.

Способов определить системный язык несколько.

Рассмотрим их по порядку.

С помощью консольной утилиты DISM

Запустите от имени администратора командную строку и выполните в ней команду dism /online /get-intl . Через несколько секунд получите результат.

Обратите внимание на параметр «Язык пользовательского интерфейса по умолчанию» . Его значение и будет системным языком.

С помощью консоли PowerShell

Запустите консоль от имени администратора и выполните команду ::InstalleduICulture .

Значение параметра DisplayName будет указывать на системный язык. Обратите также внимание на параметр LCID , он содержит код языка, прописанный в реестре Windows (смотрите ниже).

С помощью редактора реестра и таблицы декодирования

Командой regedit откройте редактор реестра и разверните ветку

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language

В правой колонке окна редактора найдите строковый параметр (он в самом низу) и посмотрите его значение.

Оно представлено четырёхзначным кодом, для расшифровки которого следует воспользоваться таблицей декодирования на сайте MSDN . В нашем примере код 0419 соответствует русскому языку.

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

В этой инструкции — о том, как исправить «кракозябры» (или иероглифы), а точнее — отображение кириллицы в Windows 10 несколькими способами. Возможно, также будет полезным: (для систем на английском и других языках).

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

С помощью редактора реестра

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


Обычно, это исправляет проблему с отображением русских букв. Вариация способа с помощью редактора реестра (но менее предпочтительная) — посмотреть на текущее значение параметра ACP (обычно — 1252 для изначально англоязычных систем), затем в том же разделе реестра найти параметр с именем 1252 и изменить его значение с c_1252.nls на c_1251.nls .

Путем подмена файла кодовой страницы на c_1251.nls

Второй, не рекомендуемый мной способ, но иногда выбираемый теми, кто считает, что правка реестра — это слишком сложно или опасно: подмена файла кодовой страницы в C:\ Windows\ System32 (предполагается, что у вас установлена западно-европейская кодовая страница — 1252, обычно это так. Посмотреть текущую кодовую страницу можно в параметре ACP в реестре, как было описано в предыдущем способе).

После перезагрузки Windows 10 кириллица должна будет отображаться не в виде иероглифов, а как обычные русские буквы.

Кракозябры — что за слово такое интересное? Этим словом обычно русские пользователи называют неправильное/неверное отображение (кодировку) символов в программах или самой Операционной Системы.
Почему такое случается? Однозначного ответа Вы не найдёте. Это может быть в следствии проделок наших «любимых» вирусов, может из-за сбоя работы ОС Windows (например пропало электричество и выключился компьютер), может программа создала конфликт с другой или ОС и всё «полетело». В общем причин может быть много, а самая интересная — это «Оно само вот так взяло и сломалось».
Читаем статью и узнаём как исправить проблему с кодировкой в программах и ОС Windows, раз уж она случилась.

Кто до сих пор не понял о чём я имею ввиду, вот вам несколько :

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

За отображение кодировки (шрифта) в Windows отвечает несколько «вещей» — это язык, реестр и файлы самой ОС. Теперь будем их проверять по отдельности и по пунктам.

Как убрать и исправить кракозябры вместо русского (русских букв) в программе или Windows.

1. Проверяем установленный язык для программ, не поддерживающих Юникод. Может он у Вас сбился.

Итак, переходим по пути: Панель управления — Язык и региональные стандарты — вкладка Дополнительно
Там смотрим чтобы язык был Русский.


В Windows XP помимо этого внизу есть список «Кодовые страницы таблиц преобразования» и в нём есть строчка с цифрой 20880 . Нужно чтобы там тоже был Русский

6. Последний пункт, в котором я даю Вам файл, который помог мне всё исправить когда-то и именно поэтому я его оставил на память. Вот архив:

Внутри два файла: кракозбрoff.cmd и кракозбрoff.reg

Принцип у них одинаковый — исправить всеми способами иероглифы, квадратики, вопросы или восклицательные знаки в програмах и ОС Windows (в простонародье кракозябры ). Я пользовался первым и мне помогло.

Ну и напоследок пара советов:
1) Если работаете с реестром, то не забывайте делать бэкап (резервную копию) на тот случай, если что-то пойдёт не так.
2) Желательно после каждого пункта проверять 1ый пункт.

На этом всё. Теперь Вы знаете как исправить убрать/исправить Кракозябры (квадратики, иероглифы, восклицательные и вопросительные знаки) в программе или Windows.

В начале 90-х, когда произошел развал СССР и границы России были открыты, к нам стали поступать программные продукты западного производства. Естественно, все они были англоязычными. В это же время начинает развиваться Интернет. Остро встала проблема русификации ресурсов и программ. Тогда и была придумана русская кодировка Windows 1251. Она позволяет корректно отображать буквы славянских алфавитов:

  • русского;
  • украинского;
  • белорусского;
  • сербского;
  • болгарского;
  • македонского.

Разработка велась русским представительством Microsoft совместно с компаниями «Диалог» и «Параграф». За основу были взяты самописные разработки, которые в 1990-91гг имели хождение среди немногочисленных идеологов ИТ в России.

На сегодняшний день разработан более универсальный способ кодировать символы — UTF-8 (Юникод). В нем представлено почти 90% всех программных и веб-ресурсов. Windows 1251 применяется в 1,6% случаев. (Информация по исследованиям Web Technology Surveys)

Кодировка сайта utf 8 или Windows 1251?

Чтобы ответить на этот вопрос, необходимо немного понять, что такое кодировка и чем они отличаются. Текстовая информация, как впрочем, и любая другая, в компьютере хранится в закодированном виде. Нам легче представить ее как числа. Каждый символ может занимать один или более байт. Windows 1251 является однобайтной кодировкой, а UTF-8 восьмибайтной. Это значит, что в Windows 1251 можно закодировать всего 256 символов.
Так как все сводится к двоичной системе исчисления, а байт – это 8 бит (0 и 1), то и максимальное число сочетаний составляет 28 = 256. Юникод позволяет представлять куда большее число символов, да и на каждый может быть выделен больший размер.

Отсюда и следуют преимущества Юникода:

  1. В шапке сайта следует указать кодировку, которая используется. Иначе вместо символов отобразятся «кракозяблы». А Юникод является стандартным для всех браузеров – они ловят его «на лету» как установленный по умолчанию.
  2. Символы сайта останутся одними и теми же, независимо от того, в какой стране загружается ресурс. Это зависит не от географического расположения серверов, а от языка программного обеспечения рабочих станций клиента. Житель Португалии, очевидно, использует клавиатуру и все ПО, включая операционную систему, на родном языке. В его компьютере, скорее всего вообще отсутствует Windows 1251. А если это так, то и сайты на русском языке корректно открываться не будут. Юникод, в свою очередь, «зашит» в любую ОС на любом языке.
  3. UTF-8 позволяет закодировать большее количество символов. На данный момент используется 6 байт из 8-ми, а русские символы кодируются двумя байтами.
    Именно поэтому предпочтительней использовать универсальную кодировку, а не узкоспециализированную, которая применяется только в славянских странах.

Таблица кодировки Windows 1251

Для программистов и разработчиков сайтов бывает необходимо знать номера символов. Для этого используются специальные таблицы кодировки. Ниже представлена таблица для Windows 1251.

Что делать, если слетела кодировка командной строки?

Иногда Вы можете столкнуться с ситуацией, когда в командной строке вместо русских отображаются непонятные символы. Это означает, что возникла проблема кодировки командной строки Windows 7. Почему 7-ка? Потому что, начиная с 8-й версии, используется UTF-8, а в семерке еще Windows 1251.
Единовременно помочь решить проблему может команда chcp 866. Текущий сеанс будет работать корректно. А вот чтобы исправить ошибку кардинально, понадобится реестр.


Отличного Вам дня!

Представление символьной информации. Использование кодировочной таблицы ASCII и стандарта кодирования символов Unicode

1. Представление символьной информации

Лекция №1
1

2. Кодируемые символы

1. Буквенно-цифровые знаки алфавитов.
2. Специальные знаки: пробел, скобки, знаки препинания,
знаки операций и т.д.
3. Управляющие символы.
Наиболее распространенные
способы кодирования символов
1. Использование кодировочной таблицы ASCII.
2. Использование стандарта кодирования символов Unicode.
2

3. ASCII

ASCII – American Standard Code for Information
Interchange (американский стандартный код обмена
информацией
Введен в действие институтом стандартизации США (ANSI –
American National Standard Institute) в 1963 году.
Первоначально предполагалось использование 7 бит кода.
3

4. Таблица ASCII

4
5

6. Кодовая таблица ASCII

Кодовая таблица ASCII состоит из двух частей:
• Базовая таблица
• Расширенная таблица
Совокупность символов базовой и
расширенной таблицы определяет
кодировку.
6

7. Базовая таблица

Коды 00h – 7Fh
7

8. Расширенная таблица (ASCII)

Коды 80h – FFh
8
КОИ-8R
Windows-1251 (CP 1251)
9

10. Пример неправильно выбранной кодировки

Windows-1251 (CP 1251)
КОИ-8R
10

11. Управляющие ASCII символы

Некоторые управляющие символы:
TAB, 09
— табуляция
LF, 0A
— перевод строки
CR, 0D
— возврат каретки
CR LF
11

12. Псевдографика

Для оформления программ и документов в
текстовом режиме, используются
псевдографические символы.
12

13. Псевдографика (ASCII)

http://www.asciimation.co.nz/
13

14. Unicode

Unicode – стандарт кодирования символов.
Коду символа сопоставляется некоторое положительное
целое число.
Для представления кода в компьютере используются
форматы представления (UTF – Unicode transformation
format): UTF-8, UTF-16, UTF-32
По стандарту Unicode первые 128 символов
соответствуют ASCII.
14

15. Unicode

В первых версиях стандарта код символа представлялся
двухбайтовым словом
16
8
8
2 = 65 536
В настоящее время стандарт Unicode обеспечивает
кодирование 1 112 064 символов.
15
8-битный формат преобразования Unicode
Обеспечивает совместимость с ASCII.
Длина кода нефиксированная – от 1 до 4 байт
16

17. Пример декодирования символа для UTF-8

Символ
А
1 1 0 1
UTF-8 (hex)
D090
0 0 0 0
Unicode (hex)
0410
1 0 0 1 0 0 0 0
1 0 0 0 0 0 10 00 0
4
1
0
17

18. Кириллическая таблица Unicode

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
410
А Б В Г Д Е Ж З И Й К Л М Н О П
420
Р С Т У Ф Х Ц Ч ШЩ Ъ Ы Ь Э Ю Я
430
а б в г д е ж з и й к л м н о п
440
р с т у ф х ц ч ш щ ъ ы ь э ю я
D0 BB D0 B5 D1 81
18
Byte Order Mark – сигнатура, определяющая UTF.
UTF-8
EF BB BF
UTF-16BE
FE FF
UTF-16LE
FF FE
UTF-32BE
00 00 FE FF
UTF-32LE
FF FE 00 00
19

Краткая история кодировок от ASCII до UTF-8 – POPEL Agency

Наверняка все слышали, что информация в компьютерах хранится в виде двоичных чисел — нулей и единиц. Но не все знают, каким образом нолики и единички внутри превращаются в читабельный текст на экране. Всё, конечно же, очень просто: каждому символу соответствует определенная комбинация нулей и единиц — код. Совокупность таких кодов называется кодировкой.

На сегодняшний день самой распространенной кодировкой является UTF-8. Она включает в себя более двух миллионов символов: все возможные современные алфавиты, цифры, знаки препинания, математические и специальные символы, музыкальные знаки и символы вымерших форм письменности. А резерва UTF-8 хватит для размещения более двух миллиардов символов. Так что о смене кодировки в ближайшее время задумываться не придётся.

Однако торжество современных технологий — явление относительно новое. Согласно Google, самой распространенной в интернете кодировкой UTF-8 стала только в 2008 году — тогда ее использовали чуть более чем 25% проиндексированных веб-страниц. А еще в 2006 UTF-8 использовали менее чем 10% веб-страниц.

График изменения популярности кодировок в интернете.

Стремительный рост популярности кодировки UTF-8 связан с целым рядом ее преимуществ перед предшественницами. Но чтобы действительно понять и оценить эти преимущества — нужно немного изучить историю вопроса.

ASCII

А начнем мы с возникновения кодировки ASCII, которую в середине двухтысячных и начала вытеснять собой из интернета кодировка UTF-8.

ASCII (англ. American Standard Code for Information Interchange) — американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов. В американском варианте английского языка произносится [э́ски], тогда как в Великобритании чаще произносится [а́ски]; по-русски произносится также [а́ски] или [аски́].

— Статья об ASCII на Википедии

Кодировка ASCII была разработана в 1963 году Американской Ассоциацией Стандартов (которая позже стала Американским Национальным Институтом Стандартов — ANSI), впоследствии несколько раз обновлялась — в 1967 и 1986 годах. ASCII — 7-битная кодировка, включающая в себя 128 символов: 33 непечатных управляющих символа (влияющих на обработку текста и пробелов) и 95 печатных символов, включая цифры, буквы латинского алфавита в строчном и прописном вариантах и ряд пунктуационных символов.

Таблица кодов символов в ASCII.

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

ISO/IEC 646

По этой причине в 1972 году началась разработка группы кодировок, основанных на ASCII, где редко используемые символы из ASCII заменялись на необходимые. Группа включала в себя варианты кодировки для Канады, Китая, Кубы, Германии, Дании, Финляндии, Франции, Великобритании, Греции, Венгрии, Ирландии, Японии, Южной Кореи, Мальты, Норвегии, Швеции и Югославии.

Стандартизация кодировок группы позволила свести различия между кодировками разных стран к минимуму.

KOI8

Естественно, СССР не остался в стороне, разработав в 1974 году свою кодировку — KOI8 (Код Обмена Информацией, 8 бит). Как следует из названия, это была 8-битная кодировка, что позволяло включить в нее в два раза больше символов. KOI8 включала в себя цифры, буквы латинского и русского алфавита, а также знаки пунктуации, спецсимволы и псевдографику.

Таблица кодов символов в KOI8-R.

Эта кодировка существует в нескольких вариантах для разных кириллических алфавитов, в частности: KOI8-R — для русского алфавита, и KOI8-U — для украинского. Кодировки KOI8 стали одними из самых популярных в русском сегменте интернет до распространения UTF-8.

ISO/IEC 8859

Ранние кодировки были ограничены 7 битами из-за особенностей некоторых протоколов передачи данных. Однако со временем эти ограничения свою актуальность потеряли, в то время как необходимость в дополнительных символах для языков, использующих латинский алфавит, только росла. Поэтому в середине 80-х началась работа над группой 8-битных кодировок, получившей название ISO/IEC 8859. Все кодировки этой группы были основаны на ASCII. Помимо расширения диапазона доступных символов за счет восьмого бита, на печатные символы была заменена часть устаревших к тому моменту непечатных управляющих символов.

Здесь стоит отметить две кодировки из группы. Первая — ISO-8859-1 — была опубликована в 1987 году. Она включала в себя так называемый «Латинский алфавит номер 1» (сокращенно Latin-1), состоящий из 191 символа латинского письма. Этот набор символов используется по всей Северной и Южной Америке, в Западной Европе, Океании и на большей части Африки. Кодировка ISO-8859-1 стала основой для наиболее популярных 8-битных кодировок.

В 1988 году была опубликована ISO-8859-5. Она была создана для работы с кириллическими языками. Включенные в эту кодировку символы обеспечивали полную поддержку русского, белорусского, болгарского, сербского и македонского языков. А вот для полной поддержки украинского языка ей не хватало буквы «ґ». Особого распространения эта кодировка не получила, но интересен сам факт разработки кириллической кодировки в рамках группы кодировок ISO/IEC.

Windows-125x

В начале 90-х годов компания Microsoft разработала группу кодировок для ОС Windows. Среди прочих хочется отметить две кодировки: Windows-1251 и Windows-1252.

Windows-1251 была разработана на базе «самодельных» кодировок для русификаторов Windows при участии российской компании-разработчика ПО «ПараГраф» и СП «Диалог» — совместного советско-американского предприятия в области вычислительной техники. В эту кодировку вошли все символы русского и близких к нему языков: украинского, белорусского, болгарского, сербского и македонского. На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в интернете вплоть до распространения UTF-8.

Таблица кодов символов в Windows-1251.

Windows-1252 была разработана на основе кодировки ISO-8859-1 путем замены ряда непечатных контрольных символов на печатные (в частности, символ евро, ряд пунктуационных и несколько других символов). Сходство этих двух кодировок часто приводило к неверному отображению текста, когда вместо новых символов из Windows-1252 отображались знаки вопроса. Эта ситуация была настолько частой, что многие почтовые клиенты для отображения писем кодировки ISO-8859-1 стали использовать Windows-1252. В конечном итоге такое поведение было внесено в спецификацию HTML 5 в качестве требования.

Переходный период

Начиная с середины 90-х в кириллическом сегменте интернета можно было регулярно наблюдать проблемы с кодировками. Виной тому было сразу несколько факторов. Во-первых, инструменты разработки и браузеры того времени не умели грамотно работать с кодировками. Во-вторых, во всех наиболее распространенных кириллических кодировках коды кириллических символов были разными. В англоязычном сегменте сети последней проблемы не было, ведь во всех основных кодировках, начиная с ASCII, символы латиницы имели одинаковые коды символов.

Интересно, что в KOI8-R русский алфавит был расположен не в алфавитном порядке: позиции символов русского алфавита соответствовали их фонетическим аналогам в английском алфавите. Таким образом, при интерпретации кодировки текста как 7-битной, русский текст превращался в некое подобие транслита. Например, слова «Русский Текст» превратились бы в «rUSSKIJ tEKST».

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

UTF-8

Впервые кодировка UTF-8 была официально представлена на конференции USENIX в Сан Диего в январе 1993. От других мультибайтных кодировок ее отличала полная совместимость с ASCII: все символы ASCII в UTF-8 кодируются 7 битами. Каждый символ кодировки, отличный от ASCII, состоит из ведущего байта, указывающего длину последовательности, и одного или нескольких продолжающих байт. Такой принцип позволяет определить длину последовательности только по первому байту. Коды символов ASCII, ведущих и продолжающих байт не пересекаются, что позволяет легко найти начало последовательности простым откатом назад максимум на пять байт.

В ноябре 2003 года стандартом RFC-3629 максимальная длина последовательности UTF-8 была ограничена четырьмя байтами, однако потенциально UTF-8 позволяет использовать последовательности вплоть до шести байт.

Принцип кодирования

У всех однобайтных символов старший бит кода установлен в 0 и полностью совпадает с кодом символа в ASCII:

У всех многобайтных последовательностей ведущий байт начинается с двух и более единиц в старших битах. Количество единиц ведущего байта соответствует длине мультибайтной последовательности. Все продолжающие байты начинаются с 10 в двух старших битах. Все неиспользуемые схемой кодирования биты мультибайтных последовательностей используются для кодирования символов:

Такой подход создает несколько символьных диапазонов разной величины. Первый диапазон использует 7 бит и кодирует до 128 символов. Второй диапазон использует 11 бит и кодирует до 2 048 символов. Третий и четвертый диапазоны используют 16 бит и 21 бит соответственно и позволяют кодировать до 65 536 и 2 097 152 соответственно. В сумме все четыре диапазона значений позволяют кодировать до 2 164 864 символов.

 

Кодировка UTF-8 является универсальной и имеет внушительный резерв на будущее. Это делает ее наиболее удобной кодировкой для использования в интернете.

Кодирование символов. Байт.

<<Назад  |  Содержание  |  Далее>>

 

 

На основании одной ячейки информационной ёмкостью 1 бит можно закодировать только 2 различных состояния. Для того чтобы каждый символ, который можно ввести с клавиатуры в латинском регистре, получил свой уникальный двоичный код, требуется 7 бит.  На основании последовательности из 7 бит, в соответствии с формулой Хартли, может быть получено N=27=128 различных комбинаций из нулей и единиц, т.е. двоичных кодов. Поставив в соответствие каждому символу его двоичный код, мы получим кодировочную таблицу. Человек оперирует символами, компьютер – их двоичными кодами.

Для латинской раскладки клавиатуры такая кодировочная таблица одна на весь мир, поэтому текст, набранный с использованием латинской раскладки, будет адекватно отображен на любом компьютере. Эта таблица носит название ASCII (American Standard Code of Information Interchange) по-английски произносится [э́ски], по-русски произносится [а́ски]. Ниже приводится вся таблица ASCII, коды в которой указаны в десятичном виде. По ней можно определить, что когда вы вводите с клавиатуры, скажем, символ “*”, компьютер его воспринимает как код 42(10), в свою очередь 42(10)=101010(2) – это и есть двоичный код символа “*”. Коды с 0 по 31 в этой таблице не задействованы.

Таблица 8.

Таблица символов ASCII

код

символ

код

символ

код

символ

код

символ

код

символ

код

символ

32

Пробел

48

.

64

@

80

P

96

112

p

33

!

49

0

65

A

81

Q

97

a

113

q

34

«

50

1

66

B

82

R

98

b

114

r

35

#

51

2

67

C

83

S

99

c

115

s

36

$

52

3

68

D

84

T

100

d

116

t

37

%

53

4

69

E

85

U

101

e

117

u

38

&

54

5

70

F

86

V

102

f

118

v

39

55

6

71

G

87

W

103

g

119

w

40

(

56

7

72

H

88

X

104

h

120

x

41

)

57

8

73

I

89

Y

105

i

121

y

42

*

58

9

74

J

90

Z

106

j

122

z

43

+

59

:

75

K

91

[

107

k

123

{

44

,

60

;

76

L

92

\

108

l

124

|

45

61

77

M

93

]

109

m

125

}

46

.

110

n

126

~

47

/

63

?

79

O

95

_

111

o

127

DEL

 

 

Чтобы хранить также и коды национальных символов каждой страны (в нашем случае – символов кириллицы) требуется добавить еще 1 бит, что увеличит количество уникальных комбинаций из нулей и единиц вдвое, т.е. в нашем распоряжении дополнительно появится 128 свободных кодов (со 128-го по 255-й), в соответствие которым можно поставить символы русского алфавита.

Таким образом, отведя под хранение информации о коде каждого символа 8 бит, мы получим N=28=256 уникальных двоичных кодов, что достаточно, чтобы закодировать все символы, которые можно ввести с клавиатуры.

Так мы подошли к необходимости познакомиться с еще одной базовой единицей измерения – байтом.

Байт — последовательность из 8 бит.

1 байт = 23 бит = 8 бит.

На основании одного байта можно получить 28=256 уникальных двоичных кодов.

В современных кодировочных таблицах под хранение информации о коде каждого символа отводится 1 байт.

1 символ = 1 байт.

В байтах измеряется объем данных (V) при их хранении и передаче по каналам связи. Например, текст “Добрый день!” занимает объем равный 12 байтам.

Биты в байте нумеруются с конца с 0-го по 7-й. Минимальная комбинация на основании одного байта – восемь нулей, максимальная – восемь единиц. Рис. 18а.

11111111(2)=27+26+25+24+23+22+21+20=128+64+32+16+8+4+2+1=255(10)

При хранении на физическом уровне каждый байт может быть реализован, например, на базе восьми конденсаторов, каждый из которых либо разряжен (0), либо заряжен (1). Рис. 18b.

Рис. 18а. Байт: минимальная и максимальная комбинации

Рис. 18b. Байт: соответствие двоичного числа и электрического импульса.

 

 

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

Например, текст “Компьютерные вирусы”, введенный в кодировке Windows-1251 в кодировке КОИ-8 будет отображен так: ”лПНРШАФЕТОШЕ ЧЙТХУЩ”.
 

Таблица 9.

Несоответствие кодов символов в различных кодировках кириллицы.

Код

Windows-1251

КОИ-8

ISO

Под национальные кодировки отданы коды с 128-го по 255-й.

 

192

А

ю

Р

193

Б

а

С

194

В

б

Т

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

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

 

 

<<Назад  |  Содержание  |  Далее>>

В идеальном мире единственная кодировка символов (или, грубо говоря, «набор символов»), что вы бы когда-нибудь увидели UTF-8 (utf-8) и Latin-1 (iso-8859-1) для всех этих устаревших документов. Однако указанные ниже кодировки существуют и их можно найти на Интернет. Они перечислены ниже в порядке их английских имен с левая сторона — это значение, которое вы получите из $ response-> content_charset. Полный список наборов символов можно найти на http://www.iana.org/assignments/character-sets.

крон

Значение

Кодировка

us-ascii

Обычный ASCII (только символы 0x00-0x7F)

asmo-708

Арабский ASMO-708

iso-8859-6

Арабский ISO

дос-720

Арабский MSDOS

окна-1256

Арабский MSWindows

iso-8859-4

Балтика ISO

окна-1257

Балтийский MSWindows

iso-8859-2

Центральноевропейский ISO

ibm852

Среднеевропейский MSDOS

окна-1250

Среднеевропейский MSWindows

Гц-ГБ-2312

Китайский упрощенный (HZ)

ГБ 2312

Китайский упрощенный (GB2312)

Евк-CN

Китайский упрощенный EUC

большой5

Китайский традиционный (Big5)

CP866

Кириллица DOS

iso-8859-5

Кириллица ISO

кои8-р

Кириллица KOI8-R

кои8-у

Кириллица КОИ8-У

окна-1251

Кириллица MSWindows

iso-8859-7

Греческий ISO

окна-1253

Греческий MSWindows

iso-8859-8-i

Еврейский ISO Logical

iso-8859-8

Иврит ISO Visual

дос-862

Еврейский MSDOS

окна-1255

Еврейский MSWindows

euc-jp

Японский EUC-JP

iso-2022-jp

Японский JIS

shift_jis

Японский Shift-JIS

iso-2022-kr

Корейский ISO

евро

Корейский стандарт

окна-874

Тайский MSWindows

iso-8859-9

Турецкий ISO

окна-1254

Турецкий MSWindows

utf-8

Unicode, выраженный как UTF-8

utf-16

Unicode, выраженный как UTF-16

окна-1258

Вьетнамский MSWindows

вязкость

Вьетнамский VISCII

iso-8859-1

Западноевропейская (Latin-1)

окна-1252

Западноевропейская (Latin-1) с дополнительными символами в 0x80-0x9F

От пустоты до машинного обучения

11.6.2. Str против байтов

  • Это было большое изменение в Python 3

  • В Python 2 str было байтами

  • В Python 3 строка является Unicode (UTF-8)

 >>> text = 'Księżyc'
>>> текст
'Księżyc'
 
 >>> text = b'Księżyc '
Отслеживание (последний вызов последний):
SyntaxError: байты могут содержать только буквальные символы ASCII.
 

Кодировка по умолчанию — UTF-8 . Имена кодировок нечувствительны к регистру. cp1250 и windows-1250 — псевдонимы одного и того же кодека:

 >>> text = 'Księżyc'
>>>
>>> text.encode ()
b'Ksi \ xc4 \ x99 \ xc5 \ xbcyc '
>>> text.encode ('utf-8')
b'Ksi \ xc4 \ x99 \ xc5 \ xbcyc '
>>> text.encode ('iso-8859-2')
b'Ksi \ xea \ xbfyc '
>>> text.encode ('cp1250')
b'Ksi \ xea \ xbfyc '
>>> text.encode ('windows-1250')
b'Ksi \ xea \ xbfyc '
 

Обратите внимание на изменение длины при кодировании:

 >>> text = 'Księżyc'
>>> текст
'Księżyc'
>>> len (текст)
7
 
 >>> text = 'Księżyc'.кодировать ()
>>> текст
b'Ksi \ xc4 \ x99 \ xc5 \ xbcyc '
>>> len (текст)
9
 

Также обратите внимание, что эти символы производят более длинный вывод:

 >>> 'ó'.encode ()
б '\ xc3 \ xb3'
 

Но, несмотря на то, что он состоит из нескольких «символов», длина разная:

Вот вывод всех польских диакритических знаков (диакритических знаков) с их кодировкой:

 >>> 'ą'.encode ()
б '\ xc4 \ x85'
>>> 'ć'.encode ()
б '\ xc4 \ x87'
>>> 'ę'.encode ()
б '\ xc4 \ x99'
>>> 'ł'.кодировать ()
б '\ xc5 \ x82'
>>> 'ń'.encode ()
б '\ xc5 \ x84'
>>> 'ó'.encode ()
б '\ xc3 \ xb3'
>>> 'ś'.encode ()
б '\ xc5 \ x9b'
>>> 'ż'.encode ()
б '\ xc5 \ xbc'
>>> 'ź'.encode ()
б '\ xc5 \ xba'
 

Обратите внимание на другой способ перебора байтов :

 >>> text = 'Księżyc'
>>>
>>> для символа в тексте:
... печать (символ)
K
s
я
ę
ż
у
c
>>>
>>> для символа в text.encode ():
... печать (символ)
75
115
105
196
153
197
188
121
99
 
Модуль

Charset — LocalSolver 8.5 документация

Модуль charset содержит список всех схем кодирования, поддерживаемых LocalSolver и методы, необходимые для запроса этого списка.

Кодировка сама по себе бесполезна, но может использоваться вместе с модулем ввода / вывода для чтения или записывать файлы с соответствующей кодировкой.

Полный список поддерживаемых кодировок

В следующей таблице перечислены все кодировки, поддерживаемые разработчиком моделей LocalSolver с их общими псевдонимами и языками, для которых обычно используется кодирование.

Кодовое имя Псевдонимы языков
ascii us-ascii Английский
cp437 pc-8, ibm437 Английский
CP 1250 окна-1250 Центральная и Восточная Европа
cp1251 окна-1251 Болгарский, сербский и македонский
cp1252 окна-1252 Западная Европа
cp1253 окна-1253 Современный греческий
cp1254 окна-1254 Турецкий
cp1255 окна-1255 Еврейский
cp1256 окна-1256 Арабский
cp1257 окна-1257 на эстонском, латышском и литовском языках
cp1258 окна-1258 Вьетнамский
iso-8859-1 латиница, latin1 Западная Европа
iso-8859-2 латинские 2 Центральная и Восточная Европа
iso-8859-3 латинские 3 Эсперанто, мальтийский, турецкий
iso-8859-4 латинские 4 эстонский, латышский, литовский, саамский
iso-8859-5 кириллица Болгарский, Сербский, Русский
iso-8859-6 арабский Арабский
iso-8859-7 греческий Греческий
iso-8859-8 еврейский Еврейский
iso-8859-9 латинские 5 Турецкий
iso-8859-10 латинские 6 Скандинавские языки
iso-8859-11 тайский Тайский
iso-8859-13 латинские 7 Балтийские языки
iso-8859-14 латинские 8 Кельтские языки
iso-8859-15 латинские 9 Западная Европа
iso-8859-16 латинские 10 Юго-Восточная Европа
utf-8 Все языки
utf-16 Все языки
utf-16be Все языки
utf-16le Все языки
utf-32be Все языки
utf-32le Все языки

Примечание

Чтобы использовать возможности этого модуля, вы должны поставить специальный оператор импорта в начале вашего файла LSP: использовать кодировку;

Константы

Этот модуль по умолчанию инстанцирует 2 кодировки: utf-8 и iso-8859-1.Вы можете использовать их напрямую через эти встроенные переменные без использования charset.lookup () метод.

Кодировка . ISO_8859_1

Кодировка Latin-1. Эта кодировка наиболее широко используется в Западной Европе. Это также кодировка по умолчанию для LocalSolver.

Кодировка . UTF_8

Кодировка UTF-8. Эта кодировка должна быть по умолчанию для вашего нового проекты с LocalSolver.Парсер LocalSolver будет использовать его автоматически, если в начале обнаружена метка порядка байтов (BOM) ваших файлов.

Функции

Кодировка . по умолчанию ()

Возвращает кодировку по умолчанию, используемую LocalSolver. Для текущей версии LocalSolver этот метод возвращает кодировку .ISO_8859_1 .

Кодировка . поиск ( имя )

Возвращает кодировку, соответствующую данному имени.Если кодировки не существует с заданным именем выдается исключение. Вы можете использовать имя кодировка или один из ее псевдонимов. Поиск не чувствителен к регистру.

Поддерживаемая кодировка символов

Следующие действия включают свойство Кодировка :

Чтобы настроить это свойство для вышеуказанных действий, используйте значение из поля «Имя» в таблице ниже, которое соответствует типу кодировки символов, который вы хотите использовать.

Канада OEM Cyrillic16

cp866

IBM

46

IBM IBM EBCDIC (Великобритания-евро)

-Евро)

Johab

10007

(Mac)

9001 6

900 18

IBM EBCDIC (японская катакана)

4918 9 -999 Корейский Wansung

o

Ассамский -iscii- или

18 9000ii4 9000ii4

Кодовая страница

Имя

Отображаемое имя

37

IBM037

IBM EBCDIC4

IBM437

OEM США

500

IBM500

IBM EBCDIC (международный)

708

708

708

Арабский (ASMO 708)

720

DOS-720

Арабский (DOS)

737

ibm737

ibm737

775

ibm775

Балтийский (DOS) 90 003

852

ibm852

Центральноевропейская (DOS)

855

IBM855

OEM 852

ibm857

Турецкий (DOS)

858

IBM00858

OEM Многоязычный Latin I

860

IBM

861

ibm861

Исландский (DOS)

862

DOS-862 862

004 Еврейский (DOS)

69

03

IBM863

Французский канадский (DOS)

9 0021

864

IBM864

Арабский (864)

865

IBM865

Скандинавский (DOS)

Кириллица (DOS)

869

ibm869

Греческий, современный (DOS)

870

IBM EB9002

IBM Многоязычный Latin-2)

874

windows-874

Тайский (Windows)

875

cp875

IBM EB

932

shift_jis

Японский (Shift-JI S)

936

gb2312

Китайский упрощенный (GB2312)

949

ks_c_5601-1987

big5

Китайский традиционный (Big5)

1026

IBM1026

IBM EBCDIC (турецкий Latin-5)

1047

0

IBM Latin-1

1140

IBM01140

IBM EBCDIC (США-Канада-евро)

1141

IBM01141

IBM01141

(Германия — евро)

1142

IBM01142

IBM EBCDIC (Дания-Норвегия-евро)

1143

IBM01143

IBM EBCDIC (Финляндия-Швеция-евро)

1144

IBM EBCDIC (Италия, евро)

1145

IBM01145

IBM EBCDIC (Испания, евро)

1146

1147

IBM01147

IBM EBCDIC (Франция-евро)

1148

IBM01148

1149

IBM01149

IBM EBCDIC (Icela ndic-Euro)

1200

utf-16

Unicode

1201

unicodeFFFE

6

07 с прямым порядком байтов. 1250

windows-1250

Центральноевропейская (Windows)

1251

windows-1251

Кириллица (Windows)

1252 Windows-1252

Западноевропейский (Windows)

1253

windows-1253

Греческий (Windows)

1254

окна

Турецкий (Windows)

1255

90 004 windows-1255

Иврит (Windows)

1256

windows-1256

арабский (Windows)

1257

windows-

Балтийский (Windows)

1258

windows-1258

Вьетнамский (Windows)

1361

Johab

Johab

10000

macintosh

Западноевропейский (Mac)

10001

x-mac-японский

Японский (Mac)

x-mac-chinesetrad

Традиционный китайский (Mac)

10003

x-mac-корейский

Корейский (Mac)

10004

x-mac-арабский

Арабский (Mac16)

10005

x-mac-hebrew

Иврит (Mac)

10006

x-mac-greek

Греческий (Mac)

x-mac-cyrillic

Кириллица (Mac)

10008

x-mac-chinesesimp

Китайский упрощенный (Mac16

)

x-mac-румынский

Румынский (Mac)

10017

x-mac-украинский

Украинский (Mac)

10021

x-mac-thai

Тайский (Mac)

10029

x-mac-ce

Центральноевропейский (Mac)

10079

x-mac-исландский

Исландский (Mac)

10081

x-mac-turkish 18

10082

x-mac-croatian

Хорватский (Mac)

12000

utf-32

Unicode )

12001

utf-32BE

Unicode (UTF-32 Big endian)

20000

900 21

x-Chinese-CNS

Китайский традиционный (CNS)

20001

x-cp20001

TCA Тайвань

14 20002

0 Китайский-Eten

Китайский традиционный (Eten)

20003

x-cp20003

IBM5550 Тайвань

9000-

20004

14 x

TeleText Тайвань

20005

x-cp20005

Wang Тайвань

20105

x-IA5

6

Западноевропейский

20106

x-IA5-German

German (IA5)

20107

x-IA5-шведский

шведский (IA5)

20108

x-IA5-норвежский

Норвежский (IA516)

20127

us-ascii

US-ASCII

20261

x-cp20261

T.61

20269

x-cp20269

ISO-6937

20273

IBM273

6

IBM 273

IBM EBIC3

IBM277

IBM EBCDIC (Дания-Норвегия)

20278

IBM278

IBM EBCDIC (Финляндия-Швеция)

IBM280

IBM EBCDIC (Италия)

20284

IBM284

IBM EBCDIC (Испания)

20285

004 IBM EBCDIC (IBM

004 IBM) Великобритания)

20290

IBM290

20297

IBM297

IBM EBCDIC (Франция)

20420

IBM EBCDIC 9000

IBM EBCDIC

20423

IBM423

IBM EBCDIC (греческий)

20424

IBM424

IBM EBCDIC

0007

x-EBCDIC-KoreanExtended

IBM EBCDIC (Korean Extended)

20838

IBM-Thai

IBM EBCDIC (тайский)

koi8-r

Кириллица (KOI8-R)

20871

IBM871

IBM EBCDIC (исландский)

20880

IBM880

IBM EBCDIC (русская кириллица)

IBM EBCDIC (турецкий)

20924

IBM00924

IBM Latin-1

20932

EUC-J18

04 900 -1990 и 0212-1990)

20936

x-cp20936

Китайский упрощенный (GB2312-80)

20949

21025

cp1025

900 04 IBM EBCDIC (кириллица сербско-болгарская)

21866

koi8-u

Кириллица (KOI8-U)

28591

Западноевропейский (ISO)

28592

iso-8859-2

Центральноевропейский (ISO)

28593

004 iso-8859-3

Latin 3 (ISO)

28594

iso-8859-4

Baltic (ISO)

28595

iso-882159-5

iso-882159-5

Кириллица (ISO)

28596

iso-8859-6

Арабский (ISO)

28597

9002 1

iso-8859-7

Греческий (ISO)

28598

iso-8859-8

Иврит (ISO-Visual)

285994

iso-8859-9

Турецкий (ISO)

28603

iso-8859-13

Эстонский (ISO)

2821605

0

iso-8859-15

Latin 9 (ISO)

29001

x-Europa

Europa

38598

is -i

Иврит (ISO-Logical)

50220

iso-2022-jp

Японский (JIS)

50221

csISO2022JP

Японский (JIS-Allow 1 байт Кана)

50222

iso-2022-jp

9000 SOte Kana — Разрешить 1 SI)

50225

iso-2022-kr

Корейский (ISO)

50227

x-cp50227

китайский упрощенный )

51932

euc-jp

Японский (EUC)

51936

EUC-CN

14 Китайский упрощенный (EU

03

14 Китайский упрощенный

51949

euc-kr

Корейский (EUC)

52936

hz-gb-2312

Упрощенный китайский (HZ)

54936

GB18030

Упрощенный китайский (GB18030)

57002

0

9000ariC De 9-is

57003

x-iscii-be

ISCII бенгальский

57004

x-iscii-ta

ISCII

ISCII

ISCII

0 57005

x-iscii-te

ISCII телугу

57006

x-iscii-as

ISCII00 x-iscii-te

0003

ISCII Ория

57008

x-iscii-ka

ISCII каннада

57009

x-iscii-ma

ISCII малаялам

ISCII Гуджарати

57011

x-iscii-pa

ISCII панджаби

65000

65000

7)

65001

utf-8

Unicode (UTF-8)

Значения кодировки | Программируемая поисковая система | Разработчики Google

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

UTF-8, который является типом кодировки по умолчанию, лучше всего работает в подавляющем большинстве случаев. Фактически, многие проблемы с текстом на странице результатов можно решить, сохранив значение UTF-8 . Единственный раз, когда вам нужно изменить значение кодировки для страницы результатов и окна поиска, — это когда веб-страница хостинга не в UTF-8. Кодировка для программируемой поисковой системы должна соответствовать кодировке вашей веб-страницы.

Вы можете определить кодировку либо на панели управления, либо в файле контекста. На вкладке Основы панели управления вы выбираете язык из раскрывающегося списка Кодировка поисковой системы . В файле контекста вы определяете значение атрибута encoding элемента CustomSearchEngine , как в следующем примере:


 

В следующей таблице перечислены значения, которые можно использовать с атрибутом encoding .

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

Тип кодирования Значение
Юникод (UTF-8) UTF-8
Арабский (Windows-1256) окна-1256
Центральноевропейская Latin-2 (ISO-8859-2) ISO-8859-2
Центральноевропейская (Windows-1250) окна-1250
Центральноевропейская (CP852) cp852
Китайский упрощенный (GB2312) ГБ 2312
Китайский упрощенный (GB18030) ГБ18030
Китайский традиционный (Big5) большой5
Кириллица (ISO-8859-5) ISO-8859-5
Кириллица (KOI8-R) КОИ8-Р
Кириллица (Windows-1251) окна-1251
Кириллица / Русский (CP-866) СП-866
Греческий (ISO-8859-7) ISO-8859-7
Еврейский (ISO-8859-8-I) ISO-8859-8-I
Еврейский (Windows-1255) окна-1255
Японский (Shift_JIS) Shift_JIS
японский (EUC-JP) EUC-JP
Японский (ISO-2022-JP) ISO-2022-JP
корейский (EUC-KR) EUC-KR
Скандинавская Latin-6 (ISO-8859-10) ISO-8859-10
Южноевропейская Latin-3 (ISO-8859-3) ISO-8859-3
Турецкая Latin-5 (ISO-8859-9) ISO-8859-9
Турецкий (Windows-1254) окна-1254
Вьетнамский (Windows-1258) окна-1258
Западноевропейская Latin-1 (ISO-8859-1) ISO-8859-1
Западноевропейская Latin-9 (ISO-8859-15) ISO-8859-15

Наверх

Codepage & Co.

Codepage & Co. В начале 1980-х годов еще не существовало согласованных международных стандартов. например, ISO-8859 или Unicode о том, как расширить US-ASCII для международных пользователей, и многие производители придумали собственные кодировки с использованием трудно запоминающихся числа:

Кодовые страницы MS-DOS

CP437 (DOSLatinUS)

Стандартный отраслевой стандарт IBM Персональный компьютер начинался со знаменитой кодовой страницы CP437 с множество символов, нарисованных рамками, и несколько избранных иностранных букв:


кодировка = cp437 [ТЕКСТ] [BDF]

CP850 (DOSLatin1)

Некоторые более поздние версии MS-DOS позволяли изменять кодовые страницы на Видеокарты VGA для чего-то вроде CP850, который представил репертуар Latin1 в позициях совместим с CP437, так что рисование линий все еще работал:


кодировка = cp850 [ТЕКСТ] [BDF]

CP852 (DOSLatin2)

CP852 сделал то же самое для Latin2 (Восточная Европа):


кодировка = cp852 [ТЕКСТ] [BDF]

CP855 (DOSCyrillic)

CP855 была представлена ​​как соответствующая кодовая страница кириллицы:


кодировка = cp855 [ТЕКСТ] [BDF]

CP866 (DOSCyrillicRussian)

За CP855 вскоре последовал CP866, который последовал более логичный порядок русского алфавита альтернативный вариант, который отдали предпочтение многим российским пользователям:


кодировка = cp866 [ТЕКСТ] [BDF]

Еще более широко используемая кодировка кириллицы (KOI8-R) позже получила номер CP878.

CP874 (DOSThai)

Тайский CP874 от Microsoft также следует установленным стандартам, а именно ТИС-620, но добавляет нестандартные символы в неиспользуемых позициях:


кодировка = cp874 [ТЕКСТ] [BDF]

CP737..CP862

Теперь я избавил вас от кровавых подробностей из

CP737
DOS Греческий
CP775
DOSBaltRim
CP857
DOST Турецкий
CP860
DOS Португальский
CP861
DOS Исландский
CP862
DOS Иврит
CP863
DOSCanadaF
CP864
DOS Арабский
CP865
DOS Nordic
CP869
DOSGreek2

Кодовые страницы MS-Windows

CP1252 (WinLatin1)

С появлением Windows Microsoft решилась попрощаться с символы рисования линий и совместимость с CP437 и принял модифицированный расширенный набор ISO-8859-1 как CP1252:


кодировка = Windows-1252 [ТЕКСТ] [BDF]

CP1250 (WinLatin2)

Как ни странно, WinLatin2 получил номер CP1250 и в некоторых позициях отличается от ISO-8859-2, но принесла Microsoft большой доход на развивающихся рынках Восточная Европа в 1990-е годы:


кодировка = Windows-1250 [ТЕКСТ] [BDF]

CP1251 (WinCyrillic)

Еще один такой пример — кириллица кодовая страница CP1251, для которой Microsoft зарегистрировала метку «Windows-1251».По состоянию на декабрь 1997, даже новый веб-сервер ГОСТ (Lotus Notes) приветствует вас с кодировкой = WINDOWS-1251. ГОСТ (Российская стандартизация органа и органа-члена ISO) не даже следуя собственному стандартов больше нет!

CP1251 имеет богатый репертуар в порядке, несовместимом с обоими ISO-IR-111 (KOI8) и ISO-8859-5:


кодировка = Windows-1251 [ТЕКСТ] [BDF]

CP1257 (WinBaltic)

Это WinBaltic, который мог служить моделью для ISOLatin7:


кодировка = Windows-1257 [ТЕКСТ] [BDF]

CP1253…CP1258

Вы понимаете, другие кодовые страницы Windows:
1253
WinGreek отличается от ISO-8859-7 размещением заглавной альфы с тонами и только несколько символов.
1254
WinTurkish делает с WinLatin1 то, что ISO-8859-9 соответствует ISO-8859-1.
1255
WinHebrew по буквам совместим с ISO-8859-8.
1256
WinArabic сохраняет символы и строчные французские буквы из WinLatin1 и вставляет арабские буквы в свободных слотах так, чтобы только позиции = C1.. = D6 (первая половина арабский алфавит) совместимы с ISO-8859-6.
1257
WinBaltic поддерживает буквенную совместимость с ISOLatin7.
1258
WinVietnamese похож на WinLatin1 и сильно отличается от VISCII.

Кодовые страницы CJK

В отличие от кодировок Extended Unix Coding EUC, все следующие восточноазиатских кодовых страниц незаконно повторно используют C1 управляющие коды {= 80 .. = 9F} для их ведущих байтов и значений ASCII {= 40.. = 7E} для своих вторых байтов, чтобы закодировать более десяти тысяча символов с двумя байтами. Это означает, что значения ASCII Beyond = 3F в своих байтовых потоках не всегда означает символы ASCII.

CP932
Shift-JIS сочетает в себе Японские символы JIS X 0201 (один байт на символ) и JIS X 0208 (два байта на символ), чтобы JIS X 0201 Hiragana оставался однобайтовые символы половинной ширины и 60 свободных 8-битных позиций кода которые не содержат хираганы, используются как ведущие байты для кандзи 7076 и 648 других полноширинных символов.В отличие от EUC-JP, Shift-JIS не имеет осталось место для дополнительных 5802 кандзи из JIS X 0212.
CP936
GBK расширяет EUC-CN (8-битный кодирование GB 2312-80 с помощью 6763 hanzi) для упрощенного zh_CN Материк Китайский для охвата всех 20902 иероглифов Хань, найденных в Юникод (GB 13000.1-93).
CP949
UnifiedHangul (UHC) — это расширенный набор Korean EUC-KR (8-битная кодировка KS C 5601-1992 с его 2350 слогов хангыль и 4888 ханджа) с 8822 дополнительными предварительно составленные слоги хангыль в диапазоне C1.
CP950
Big5 (13072 традиционный zh_TW Китайский ханзи) для тайваньского вместо EUC-TW (CNS 11643-1992).
Ознакомьтесь с CJK.INF Кена Лунде или таблицами сопоставления Unicode для получения более подробной информации. Вы найдете эти кодировки проиллюстрированными в Кен Лунде и бестселлеры Надин Кано, хотя последняя написана чистая точка зрения Microsoft с небольшим упоминанием стандартов ISO.

Стандарты других поставщиков

Microsoft — не единственная компания, изобретающая свои более-менее несовместимые стандарты, как вы можете видеть в ftp: // ftp.unicode.org/Public/MAPPINGS/VENDORS/:

AdobeStandardEncoding

Страница Adobe PostScript язык описания называет свою собственную кодировку StandardEncoding и требует, чтобы вы сначала переключились на ISOLatin1Encoding, если хотите печатать тексты ISO-8859-1.


кодировка = Adobe-Standard-Encoding [ТЕКСТ] [BDF]

MacRoman

Apple Macintosh имеет долгую традиция многоязычной поддержки Apple собственные кодировки, из которых МакРоман был первым:


кодировка = macintosh [ТЕКСТ] [BDF]

NeXTSTEP

У

NeXTSTEP есть нечто похожее:


кодировка = следующая [ТЕКСТ] [BDF]

HP-Roman8

HPUX и hpterm от Hewlett-Packard есть свои HP-Roman8:


кодировка = HP-Roman8 [ТЕКСТ] [BDF]


Отправить письмо на адрес roman @ czyborra.com, если вам нужны дополнительные шрифты или обнаружите ошибки как Андреас Прилоп, Кент Карлссон, Юнгшик Шин и Ян Томашек.

Роман Чиборра
$ Дата: 27.06.1998 08:25:38 $

Windows таблица кодировки русских букв. Использование консольной утилиты DISM

Кракозябры — что за слово такое интересное? Это слово обычно используется российскими пользователями для обозначения некорректного / неправильного отображения (кодировки) символов в программах или самой операционной системе.
Почему это происходит? Вы не найдете однозначного ответа. Это может быть из-за уловок наших «любимых» вирусов, может быть из-за неисправности ОС Windows (например, отключилось питание и компьютер выключился), программа могла создать конфликт с другим или «слетела» ОС и все. В общем, причин может быть много, но самая интересная — «Взял и вот так сломался».
Читаем статью и узнаем, как исправить проблему с кодировкой в ​​программах и ОС Windows, раз уж она возникла.

Кто еще не понимает о чем я, вот несколько:

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

За отображение кодировки (шрифта) в Windows отвечает несколько «вещей» — язык, реестр и файлы самой ОС. Теперь рассмотрим их по отдельности и по пунктам.

Как убрать и исправить кракозябры вместо русских (русских букв) в программе или винде.

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

Итак, идем по пути: Панель управления — Язык и региональные стандарты — вкладка Дополнительно
Там ищем, чтобы язык был русский.


В Windows XP, помимо этого, внизу есть список «Кодовых страниц таблиц преобразования» и строка с номером 20880 в нем.Русский язык там тоже должен быть

6. Последний пункт, в котором я даю вам файл, который помог мне когда-то все исправить, и поэтому я оставил его на память. Вот архив:

Внутри два файла: krakozbroff.cmd и krakozbroff.reg

Принцип их тот же — исправлять всеми способами иероглифы, квадраты, вопросы или восклицательные знаки в программах и ОС Windows (в простонародье кракозябры ). Я использовал первый, и он мне помог.

И напоследок пара советов:
1) Если вы работаете с реестром, то не забудьте сделать бэкап (бэкап) на случай, если что-то пойдет не так.
2) Рекомендуется проверять 1-ю точку после каждого пункта.

Вот и все. Теперь вы знаете, как исправить удаление / исправление Кракозябры (квадраты, иероглифы, восклицательные и вопросительные знаки) в программе или Windows.

В начале 90-х, когда распался СССР и границы России открылись, к нам стали поступать программные продукты западного производства.Естественно, все они были англоговорящими. В то же время начал развиваться Интернет. Остро встала проблема русификации ресурсов и программ. Затем была изобретена русская кодировка Windows 1251. Позволяет правильно отображать буквы славянских алфавитов:

  • русские;
  • украинский;
  • белорусский;
  • сербский;
  • болгарский;
  • Македонский.

Разработка проводилась российским представительством Microsoft совместно с компаниями «Диалог» и «Параграф».За основу были взяты самописные разработки, которые в 1990-91 годах были в ходу у немногочисленных идеологов ИТ в России.

На сегодняшний день разработан более универсальный способ кодирования символов — UTF-8 (Unicode). Он представляет собой почти 90% всего программного обеспечения и веб-ресурсов. Windows 1251 используется 1,6% времени. (Информация из обзоров веб-технологий)

Кодировка сайта UTF 8 или Windows 1251?

Чтобы ответить на этот вопрос, нужно немного разобраться, что такое кодировки и чем они отличаются.Текстовая информация, как и любая другая, хранится в компьютере в закодированном виде. Нам легче думать об этом как о числах. Каждый символ может занимать один или несколько байтов. Windows 1251 — это однобайтовая кодировка, а UTF-8 — восьмибайтовая кодировка. Это означает, что в Windows 1251 можно закодировать только 256 символов.
Поскольку все сводится к двоичной системе исчисления, а байт составляет 8 бит (0 и 1), максимальное количество комбинаций составляет 28 = 256. Юникод позволяет вам представлять гораздо большее количество символов и большего размера. можно выделить для каждого.

Отсюда преимущества Unicode:

  1. В заголовке сайта следует указать используемую кодировку. В противном случае вместо символов будет отображаться «кракозяблы». А Unicode стандартен для всех браузеров — они по умолчанию ловят его на лету.
  2. Символы сайта останутся неизменными, независимо от того, в какой стране загружен ресурс. Это зависит не от географического расположения серверов, а от языка программного обеспечения рабочей станции клиента.Житель Португалии, очевидно, использует клавиатуру и все программное обеспечение, включая операционную систему, на своем родном языке. На его компьютере, скорее всего, вообще нет Windows 1251. А если это так, то и сайты на русском не будут корректно открываться. Unicode, в свою очередь, «жестко запрограммирован» в любую ОС на любом языке.
  3. UTF-8 позволяет кодировать больше символов. На данный момент используется 6 байтов из 8, а русские символы кодируются двумя байтами.
    Поэтому предпочтительнее использовать универсальную кодировку, а не узкоспециализированную кодировку, которая используется только в славянских странах.

Таблица кодировки Windows 1251

Программистам и разработчикам веб-сайтов иногда необходимо знать номера символов. Для этого используются специальные таблицы кодирования. Ниже представлена ​​таблица для Windows 1251.

Что делать, если кодировка командной строки вылетела из строя?

Иногда можно столкнуться с ситуацией, когда в командной строке вместо русского отображаются непонятные символы. Это означает, что существует проблема с кодировкой командной строки Windows 7.Почему 7? Потому что, начиная с 8-й версии используется UTF-8, а в семерке еще и Windows 1251.
Команда chcp 866 может помочь решить проблему заодно. Текущая сессия будет работать правильно. Но чтобы кардинально исправить ошибку, нужен реестр.


Хорошего дня!

Windows-1251 — это набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Эта кодировка довольно популярна в странах Восточной Европы.Windows-1251 выгодно отличается от других 8-битных кодировок кириллицы (таких как CP866, KOI8-R и ISO 8859-5) наличием почти всех символов, используемых в традиционной русской типографике для обычного текста (отсутствует только знак ударения). Кириллические символы расположены в алфавитном порядке.
Windows-1251 также содержит все символы для языков, близких к русскому: белорусский, украинский, сербский, македонский и болгарский.
На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в Интернете до распространения UTF-8.

Таблица кодов символов Windows-1251

Дек Hex Символ Дек Hex Символ
000 00 NOP 128 80 Ђ
001 01 СОХ 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 БЕЛ 135 87
008 08 BS 136 88
009 09 ВКЛАДКА 137 89
010 0A LF 138 8A Љ
011 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 НАК 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
028 ФС 156 9C њ
029 1D GS 157 9D ќ
030 1E рупий 158 9E ћ
031 1 этаж США 159 9 этаж џ
032 20 СП 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 + 171 AB «
044 2C, 172 переменного тока ¬
045 173 н.э.
046 2E. 174 AE ®
047 2F / 175 AF Ї
048 30 0 176 B0 °
049 31 1 177 В1 ±
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 e
057 39 9 185 Б9
058 3A: 186 BA є
059; 187 BB »
060 3C 188 до н.э. ј
061 3D = 189 BD Ѕ
062 3E> 190 BE ñ
063 3F? 191 Bf ї
064 40 @ 192 C0 А
065 41 А 193 C1 B
066 42 B 194 C2 В
067 43 С 195 C3 G
068 44 D 196 C4 D
069 45 E 197 C5 E
070 46 F 198 C6 Ф
071 47 г 199 C7 Z
072 48 H 200 C8 И
073 49 I 201 C9 Чт
074 4A Дж 202 CA К
075 4B К 203 CB L
076 4C L 204 CC M
077 М 205 CD H
078 4E N 206 CE O
079 4F O 207 CF NS
080 50 п 208 D0 R
081 51 Q 209 D1 С
082 52 R 210 D2 Т
083 53 S 211 D3 Есть
084 54 т 212 D4 F
085 55 U 213 D5 NS
086 56 В 214 D6 С
087 57 Вт 215 D7 H
088 58 х 216 D8 NS
089 59 Y 217 D9 СЧ
090 5A Z 218 DA В
091 5B [ 219 DB NS
092 5C \ 220 постоянного тока В
093 5D] 221 DD NS
094 5E ^ 222 DE NS
095 5F _ 223 DF Я
096 60` 224 E0 а
097 61 a 225 E1 б
098 62 б 226 E2 v
099 63 c 227 E3 G
100 64 г 228 E4 г
101 65 и 229 E5 и
102 66 f 230 E6 f
103 67 г 231 E7 с
104 68 ч 232 E8 и
105 69 и 233 E9 чт
106 6A j 234 EA К
107 6B к 235 EB л
108 6C л 236 EC кв.м
109 6D м 237 ED n
110 6E n 238 EE O
111 6F или 239 EF NS
112 70 п 240 F0 R
113 71 q 241 F1 с
114 72 г 242 F2 Т
115 73 с 243 F3 в
116 74 т 244 F4 f
117 75 u 245 F5 NS
118 76 в 246 F6 с
119 77 Вт 247 F7 ч
120 78 х 248 F8 NS
121 79 y 249 F9 СЧ
122 7A z 250 FA б
123 7B { 251 FB NS
124 7C | 252 FC б
125 7D} 253 FD NS
126 7E ~ 254 FE NS
127 7F DEL 255 FF Я

Описание специальных (управляющих) символов

Первоначально управляющие символы ASCII (диапазон 00–31 плюс 127) были разработаны для управления аппаратными устройствами, такими как телетайпы, ввод перфоленты и т. Д.
Управляющие символы (кроме горизонтальных табуляции, перевода строки и возврата каретки) не используются в HTML-документах.

Специальные (управляющие) символы

Код Описание
NUL, 00 Нулевой, пустой
SOH, 01 Начало заголовка, начало заголовка
STX, 02 Начало TeXt, начало текста
ETX, 03 Конец текста, конец текста
EOT, 04 Конец передачи, конец передачи
ENQ, 05 Запрос.Прошу подтверждения
ACK, 06 Благодарность. Подтверждаю
БЕЛ, 07 Колокол, колокол
BS, 08 Backspace, вернуться на один символ назад
ВКЛАДКА, 09 Табуляция, горизонтальная табуляция
LF, 0A Перевод строки, перевод строки
Теперь в большинстве языков программирования он обозначается как \ n
VT, 0B Вертикальный выступ, вертикальный выступ
FF, 0C Подача формы, подача страницы, новая страница
CR, 0D Возврат каретки
Теперь в большинстве языков программирования он обозначается как \ r
SO, 0E Shift Out, изменение цвета красящей ленты в печатающем устройстве
SI, 0F Shift In, вернуть цвет красящей ленты в печатающем устройстве назад
DLE, 10 Data Link Escape, переключить канал на передачу данных
DC1, 11
DC2, 12
DC3, 13
DC4, 14
Управление устройством, символы управления устройством
NAK, 15 Отрицательное подтверждение, не подтверждать
SYN, 16 Синхронизация.Символ синхронизации
ETB, 17 Конец текстового блока, конец текстового блока
CAN, 18 Отмена, отмена ранее пройденного
EM, 19 Конец среды, конец носителя данных
SUB, 1A Замещающий Устанавливается вместо символа, значение которого было потеряно или искажено во время передачи
ESC, 1B Escape Последовательность выхода
ФС, 1С Разделитель файлов, разделитель файлов
GS, 1D Групповой разделитель, групповой разделитель
RS, 1E Разделитель записей, разделитель записей
US, 1F Разделитель блоков, разделитель блоков
DEL, 7F Удалить, удалить последний символ.

Иногда по той или иной причине пользователи Windows сталкиваются с чем-то, что приводит к сбою кодирования. Какая-то недавно установленная программа, вирус, манипуляции с реестром, мало ли … Вот пропали кодировки и все!

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

Если честно, я почти два дня искал решение проблемы.На всех форумах и сервисах «вопросы и ответы», во всех руководствах и инструкциях все как один повторяли один и тот же рецепт решения, которое могло кому-то помочь. Но не для меня. И только когда у меня закипели мозги и вся надежда на решение проблемы покинула меня, все встало на свои места.

Я решил отправить результаты поиска в « Универсальное руководство для решения всех проблем с кодировкой в ​​операционных системах Windows XP и Windows Vista / 7 ». Хотя, возможно, это уже не так универсально…;)

Решение проблем с кодировкой в ​​Windows XP:

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

Открываем « Панель управления » и дважды щелкните значок «» … Перейти на вкладку « Дополнительно » «».

После этого в списке, расположенном на этой же вкладке, найдите элемент 20880 и поставьте рядом с ним галочку:

Пункт 2.Не исключено, что проблемы с кодировкой вызваны нарушением системных настроек шрифтов.

Для восстановления настроек шрифта скачайте этот архив


Пункт 3. Следующим шагом будет изменение ключей реестра, отвечающих за кодировки. Рекомендуется вносить эти изменения только в крайнем случае и только в том случае, если все предыдущие пункты ни к чему не привели.

этот архив

Решение проблем с кодировкой в ​​Windows Vista / 7:

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

Открываем « Панель управления » и дважды щелкните значок « язык и региональные стандарты » … Перейти на вкладку « Дополнительно » и установите русский язык как « A язык для не-Unicode программ »:

Сохраните изменения и перезагрузите компьютер.Если проблема не исчезнет, ​​перейдите к шагу 2.

2. Для восстановления настроек шрифта скачайте этот архив и запустите файл, который в нем находится, игнорируя все системные предупреждения:


Перезагрузите систему. Если проблема не исчезнет, ​​перейдите к шагу 3.

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

Чтобы внести эти изменения, скачайте этот архив и запустите в нем файл.Как и в предыдущем абзаце, появятся системные предупреждения.

После этих изменений вам также потребуется перезагрузить систему.

4. Если все вышеперечисленное не помогло, необходимо изменить имена следующих файлов кодовых страниц в папке C: \ Windows \ System32 :

Файл « c_1252.nls » на « c_1252.nls.bak »
Файл « c_1253.nls » на « c_1253.nls.bak »
Файл « c_1254.nls »на« c_1254.nls.bak »
Файл« c_1255.nls »на« c_1255.nls.bak »

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

Как известно, Windows 10 поддерживает установку языковых пакетов, с помощью которых можно менять локализацию интерфейса операционной системы. С этим очень тесно связано понятие системного языка.Системный язык — это не тот, который был добавлен с языковым пакетом, а тот, который был выбран во время установки самой системы. Если вы работаете на корпоративном компьютере, язык которого был изменен посредством установки MUI -packages, вы можете узнать, какой язык изначально использовался в системе.

Есть несколько способов определить системный язык.

Рассмотрим их по порядку.

Использование утилиты консоли DISM

Запустите командную строку от имени администратора и запустите демон / онлайн / get-intl.Получите результат за несколько секунд.

Обратите внимание на параметр «Язык пользовательского интерфейса по умолчанию» … Его значение будет системным языком.

Использование консоли PowerShell

Запустите консоль от имени администратора и выполните команду :: InstalleduICulture .

Значение параметра DisplayName указывает на системный язык. Также обратите внимание на параметр LCID , он содержит код языка, записанный в реестре Windows (см. Ниже).

Использование редактора реестра и таблицы декодирования

Команда regedit открыть редактор реестра и развернуть ветку

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ Language

В правом столбце окна редактора найдите строковый параметр (он в самом низу) и посмотрите его значение.

Оставить комментарий

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

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