Как поменять кодировку с iso-8859-1 на windows-1251?
Ситуация такая: я получаю запрос, который пользователь вводит в строку поиска и применяю функцию preg_split. После чего кодировка слов меняется и судя по функции mb_detect_encoding на iso-8859-1. Можно ли как то изменить кодировку на windows-1251?
Пробовала iconv не работает
Читала еще, что mb_detect_encoding может неправильно определить кодировку, тогда как можно определить правильно?
Выдает такой символ �, прочитала, что это UTF-8, но при применении iconv строка становится пустой
- Вопрос задан более трёх лет назад
- 5179 просмотров
1 комментарий
Оценить 1 комментарий
Ошибка в преобразовании ISO-8859-1 в UTF8 [дубликат]
html, который возвращает POST имеет кодировку ISO-8859-1, при попытке преобразования в UTF-8 выпадает в ошибку.
import requests url = "http://___" payload='some text' headers = r=requests.request("POST", url, headers=headers, data=payload) r.encoding
html=r.text.encode('ISO-8859-1').decode('UTF-8')
‘utf-8’ codec can’t decode byte 0xcf in position 226: invalid continuation byte
Если поискать пример конкретного текста, то можно увидеть такое:
from bs4 import BeautifulSoup soup = BeautifulSoup(r.text, 'html.parser') div=soup.find('div', ) mystr=div.find_all('td')[0].get_text() print(mystr)
Âàðèàíòû íàèìåíîâàíèÿ ïðîäóêöèè
Отслеживать
задан 7 июл 2021 в 19:31
97 9 9 бронзовых знаков
Просто r.content передавайте вместо r.text (байты вместо неправильно декодированного текста), тогда bs сам по мета-тегам определит правильную кодировку: soup = BeautifulSoup(r.content, ‘html.parser’)
8 июл 2021 в 5:06
И еще, перед получением текста из ответа можно кодировку заменить: r.encoding = ‘cp1251’ print(r.text)
8 июл 2021 в 5:14
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
У меня перекодировалось при таком составе кодировок:
text = 'Âàðèàíòû íàèìåíîâàíèÿ ïðîäóêöèè' print(text.encode('CP1252').decode('CP1251', errors='ignore')) # Варианты наименования продукции
Использование UTF-8 в HTTP заголовках
Как известно, HTTP 1.1 — это текстовой протокол передачи данных. HTTP сообщения закодированы, используя ISO-8859-1 (которую условно можно считать расширенной версией ASCII, содержащей умляуты, диакритику и другие символы, используемые в западноевропейских языках). При этом в теле сообщений можно использовать другую кодировку, которая должна быть обозначена в заголовке «Content-Type». Но что делать, если нам необходимо задать non-ASCII символы не в теле сообщения, а в самих заголовках? Наверное, самый распространенный кейс — это проставление имени файла в «Content-Disposition» заголовке. Это, казалось бы, довольно распространенная задача, но ее реализация не так очевидна.
TL;DR: Используйте кодировку, описанную в RFC 6266, для «Content-Disposition» и преобразуйте текст в латиницу (транслит) в остальных случаях.
Небольшая вводная в кодировки
В статье упоминаются и используются кодировки US-ASCII (часто именуемую просто ASCII), ISO-8859-1 и UTF-8. Это небольшая вводная в эти кодировки. Раздел предназначен для разработчиков, которые редко или совсем не работают с кодировками и успели подзабыть их. Если вы к ним не относитесь, то смело пропускайте раздел.
ASCII — это простая кодировка, содержащая 128 символов и включающая весь английский алфавит, цифры, знаки препинания и служебные символы.
7 бит достаточно, чтобы представить любой ASCII символ. Слово «test» будет представлено в HEX представлении, как 0x74 0x65 0x73 0x74. Первый бит у всех символов всегда 0, поскольку символов в кодировке 128, а байт предоставляет 2^8 = 256 вариантов.
ISO-8859-1 — кодировка, предназначенная для западноевропейских языков. Содержит французскую диакритику, немецкие умляуты и т.д.
Кодировка содержит 256 символов и, таким образом, может быть представлена одним байтом. Первая половина (128 символов) полностью совпадает с ASCII. Таким образом, если первый бит = 0, то это обычный ASCII символ. Если 1, то это символ, специфичный для ISO-8859-1.
UTF-8 — одна из самых известных кодировок наравне с ASCII. Способна кодировать 1.112.064 символов. Размер каждого символа варьируется от 1-го до 4-х байт (раньше допускались значения до 6 байт).
Программа, работающая с этой кодировкой, определяет по первым битам, как много байтов входит в символ. Если октет начинается с 0, то символ представлен одним байтом. 110 — два байта, 1110 — три байта, 11110 — 4 байта.
Как и в случае с ISO-8859-1, первые 128 символов полностью соответствуют ASCII. Поэтому тексты, использующие только ASCII символы, будут абсолютно идентичны в бинарном представлении, вне зависимости от того, использовалась ли для кодирования US-ASCII, ISO-8859-1 или UTF-8.
Использование UTF-8 в теле сообщения
Прежде чем перейти к заголовкам, давайте быстро взглянем, как использовать UTF-8 в теле сообщений. Для этого используется заголовок «Content-Type».
Если «Content-Type» не задан, то браузер должен обрабатывать сообщения, как будто они написаны в ISO-8859-1. Браузер не должен пытаться отгадать кодировку и, тем более, игнорировать «Content-Type». Но, что реально отобразится в ситуации, когда «Content-Type» не передан, зависит от реализации браузера. Например, Firefox сделает согласно спецификации и прочитает сообщение, будто оно было закодировано в ISO-8859-1. Google Chrome, напротив, будет использовать кодировку операционной системы, которая для многих российских пользователей равна Windows-1251. В любом случае, если сообщение было в UTF-8, то оно будет отображено некорректно.
Проставляем UTF-8 сообщение в значение заголовка
С телом сообщения все достаточно просто. Тело сообщения всегда следует после заголовков, поэтому здесь не возникает технических проблем. Но как быть с заголовками? В спецификации недвусмысленно заявляется, что порядок заголовков в сообщении не имеет значения. Т.е. задать кодировку в одном заголовке через другой заголовок не представляется возможным.
Что будет, если просто взять и записать UTF-8 значение в значение заголовка? Мы видели, что такой трюк с телом сообщения приведет к тому, что значение будет просто прочитано в ISO-8859-1. Логично было бы предположить, что то же самое произойдет с заголовком. Но это не так. Фактически, во многих, если не в большинстве, случаях такое решение будет работать. Сюда включаются старые айфончики, IE11, Firefox, Google Chrome. Единственным из находящихся у меня под рукой браузеров, когда я писал эту статью, который не захотел работать с таким заголовком, является Edge.
Такое поведение не зафиксировано в спецификациях. Возможно, разработчики браузеров решили облегчить жизнь разработчиков и автоматически определять, что в заголовках сообщение закодировано в UTF-8. В общем-то, это не является такой сложной задачей. Смотрим на первый бит: если 0, то ASCII, если 1 — то, возможно, UTF-8.
Нет ли в этом случае пересечения с ISO-8859-1? На самом деле, практически нет. Возьмем для примера UTF-8 символ из 2-х октетов (русские буквы представлены двумя октетами). Символ в бинарном представлении будет иметь вид: 110xxxxx 10xxxxxx. В HEX представлении: [0xC0-0x6F] [0x80-0xBF]. В ISO-8859-1 этими символами едва ли можно закодировать что-то, несущее смысловую нагрузку. Поэтому риск того, что браузер неправильно расшифрует сообщение, очень мал.
Однако, при попытке использовать этот способ можно столкнуться с техническими проблемами: ваш веб-сервер или фреймворк может просто не разрешить записывать UTF-8 символы в значение заголовка. Например, Apache Tomcat вместо всех UTF-8 символов проставляет 0x3F (вопросительный знак). Разумеется, это ограничение можно обойти, но, если само приложение бьет по рукам и не дает что-то сделать, то, возможно, вам и не нужно это делать.
Но, независимо от того, разрешает ли вам ваш фреймворк или сервер записать UTF-8 сообщения в заголовок или нет, я не рекомендую этого делать. Это не задокументированное решение, которое в любой момент времени может перестать работать в браузерах.
Транслит
Я думаю, что использовать транслит — eto bolee horoshee reshenie. Многие крупные популярные русские ресурсы не брезгуют использовать транслит в названиях файлов. Это гарантированное решение, которое не сломается с выпуском новых браузеров и которое не надо тестировать отдельно на каждой платформе. Хотя, разумеется, надо подумать, как преобразовывать весь спектр возможных символов, что может быть не совсем тривиально. Например, если приложение рассчитано на российскую аудиторию, то в имя файла могут попасть татарские буквы ә и ң, которые надо как-то обработать, а не просто заменять на «?».
RFC 2047
Как я уже упомянул, томкат не позволил мне проставить UTF-8 в заголовке сообщения. Отражена ли эта особенность поведения в Java docs для сервлетов? Да, отражена:
Упоминается RFC 2047. Я пробовал кодировать сообщения, используя этот формат, — браузер меня не понял. Этот метод кодировки не работает в HTTP. Хотя работал раньше. Вот, например, тикет на удаление поддержки этой кодировки из Firefox.
RFC 6266
В тикете, ссылка на который содержится в предыдущем разделе, есть упоминания, что даже после прекращения поддержки RFC 2047, все еще есть способ передавать UTF-8 значения в названии скачиваемых файлов: RFC 6266. На мой взгляд, это самое правильно решение на сегодняшний день. Многие популярные интернет ресурсы используют его. Мы в CUBA Platform также используем именно этот RFC для генерации «Content-Disposition».
RFC 6266 — это спецификация, описывающая использование “Content-Disposition” заголовка. Сам способ кодировки подробно описан в другой спецификации — RFC 8187.
Параметр “filename” содержит название файла в ASCII, “filename*” — в любой необходимой кодировке. При наличии обоих атрибутов “filename” игнорируется во всех современных браузерах (включая IE11 и старые версии Safari). Совсем старые браузеры, напротив, игнорируют “filename*”.
При использовании данного способа кодирования в параметре сначала указывается кодировка, после » идет закодированное значение. Видимые символы из ASCII кодирования не требуют. Остальные символы просто пишутся в hex представлении, со стоящим «%» перед каждым октетом.
Что делать с другими заголовками?
Кодирование, описанное в RFC 8187, не является универсальным. Да, можно поместить в заголовок параметр с * префиксом, и это, возможно, будет даже работать для некоторых браузеров, но спецификация предписывает не делать так.
В каждом случае, где в заголовках поддерживается UTF-8, на настоящий момент есть явное упоминание об этом в релевантном RFC. Помимо «Content-Disposition» данная кодировка используется, например, в Web Linking и Digest Access Authentication.
Следует учесть, что стандарты в этой области постоянно меняются. Использование описанной выше кодировки в HTTP было предложено лишь в 2010. Использование данной кодировки именно в «Content-Disposition» было зафиксировано в стандарте в 2011. Несмотря на то, что эти стандарты находятся лишь на стадии «Proposed Standard», они поддержаны повсеместно. Вариант, что в будущем нас ожидают новые стандарты, которые позволят более унифицировано работать с различными кодировками в заголовках, не исключен. Поэтому остается только следить за новостями в мире стандартов HTTP и уровня их поддержки на стороне браузеров.
Кодировки UTF-8, Windows-1251, CP-866. или русский язык в Arduino IDE
Кодировка это процесс преобразования данных или сигналов из формы, удобной для восприятия, в форму, удобную для хранения, обработки и передачи.
Данные в микроконтроллере хранятся, обрабатываются и передаются в виде логических единиц и нулей, то есть в двоичной системе счисления. Числа можно перевести из любой системы счисления в двоичную и обратно, а символы (буквы) перевести в двоичную систему нельзя. Символы не переводятся а кодируются в числа, в соответствии с используемой таблицей символов. Таблица символов это таблица в которой каждому символу соответствует число, например, символу ‘J’ соответствует число 74. Значит в памяти Arduino символ ‘J’ будет храниться как число 0b01001010 = 0x4A = 74.
Исторически сложилось так, что было создано множество таблиц символов. Виной тому и множество алфавитов различных языков, и разные взгляды на очерёдность следования символов в таблице, и стремление разработчиков уместить все символы в 1 байт, и наоборот создать универсальные кодировки ценой увеличения занимаемого места и т.д. Но в большинстве таблиц, первые 127 символов совпадают и являются знаками, числами и символами латиницы.
Ваш компьютер не является исключением, текст на нём так же хранится в виде чисел, а значит он кодируется. При этом разные файлы могут использовать разную кодировку (использовать разные таблицы символов). Значит и скетчи хранящиеся на Вашем компьютере так же используют определённую кодировку. А именно от кодировки скетча зависит как будут записаны русские символы в микроконтроллер, ведь компилятор не кодирует текст, а читает и сохраняет его числовое (кодированное) представление.
Наиболее распространёнными кодировками с поддержкой Русского языка (с использованием символов Кириллицы) являются: UTF-8, Windows-1251, CP-866, KOI-8R, ISO-8859-5. Стоит отметить что все эти кодировки представляют один символ одним однобайтным числом, кроме кодировки UTF-8 в которой один символ Кириллицы кодируется двухбайтным числом, а значит в кодировке UTF-8 строка русского текста занимает в два раза больше памяти.
Какую кодировку использует Arduino IDE:
Точно сказать какую кодировку использует Arduino IDE нельзя, так как разные её версии использовали разную кодировку. На момент написания данной статьи последняя версия Arduino IDE 1.8.5 сохраняет скетчи в кодировке UTF-8 и монитор последовательного порта этой версии использует кодировку UTF-8. Но не сохранённые скетчи используют кодировку предыдущих версий — Windows-1251.
Попробуйте в Arduino IDE 1.8.5 создать новый скетч (меню: «Файл>Новый») и напишите в нём следующий код:
void setup() < // Serial.begin(9600); // Инициируем работу шины UART на скорости 9600 бит/сек. Serial.println("Привет"); // Отправляем текст в монитор последовательного порта. >// void loop() < // >//
Загрузите скетч в Arduino (меню: «Скетч>Загрузка»). Arduino IDE предложит Вам сохранить скетч перед загрузкой, откажитесь нажав на кнопку «Отмена», начнётся загрузка скетча в Arduino. Дождитесь завершения загрузки и откройте монитор последовательного порта (меню: «Инструменты>монитор порта»). В мониторе порта вы увидите текст «⸮⸮⸮⸮⸮⸮». Дело в том, что скетч был загружен в Arduino в кодировке Windows-1251, а монитор последовательного порта использует кодировку UTF-8.
Теперь загрузите тот же скетч в Arduino (меню: «Скетч>Загрузка»), но согласитесь с сохранением скетча, а после его загрузки откройте монитор последовательного порта (меню: «Инструменты>монитор порта»). В мониторе порта вы увидите текст «Привет». Дело в том, что теперь скетч был загружен в кодировке UTF-8 и в той же кодировке работает монитор порта. Кодировки совпали и текст стал читаемым.
Если вместо строки «Привет» Вы напишете «Privet», то в обоих случаях строка корректно отобразится в мониторе порта, так как числовое представление символов латиницы совпадает в большинстве кодировок.
Запись и вывод текста в Arduino IDE на русском языке:
Как видно из предыдущего примера, кодировка выводимого текста на русском языке должна совпадать с кодировкой устройства для которого этот текст предназначен. Но многие устройства (дисплеи, модули gsm, bluetooth и т.д.) используют кодировку отличную от UTF-8 и тогда возникает вопрос, как в скетче записать текст на русском языке?
Для записи одного символа достаточно указать его код из таблицы символов (в примере указан код в 10-тичной системе счисления):
char i = 74; // Определяем символ с кодом 74 (это код символа 'J'). void setup() < // Serial.begin(9600); // Инициируем работу шины UART на скорости 9600 бит/сек. Serial.println(i); // Отправляем символ в монитор последовательного порта. >// void loop() < // >//
В мониторе последовательного порта отобразится символ ‘J’.
Для записи любого символа в строке нужно указать его код из таблицы символов в 8-ричной системе счисления, которому должен предшествовать обратный слеш «\». Данное правило действует для любых строк в Arduino IDE.
char i[]="\110\145\154\154\157"; // Определяем строку из 5 кодов символов "Hello". Символ конца строки добавляется автоматически. void setup() < // Serial.begin(9600); // Инициируем работу шины UART на скорости 9600 бит/сек. Serial.println(i); // Отправляем строку в монитор последовательного порта. >// void loop() < // >//
Не смотря на то что запись строки «i» кажется громоздкой, она занимает всего 6 байт (5 символов + автоматически добавленный символ конца строки). В мониторе последовательного порта отобразится строка «Hello».
Для записи символов и строк на русском языке действуют те же правила:
char i[] = "\320\237\321\200\320\270\320\262\320\265\321\202"; // текст "Привет" в кодировке UTF-8. char j[] = "\317\360\350\342\345\362"; // текст "Привет" в кодировке Windows-1251. char k[] = "\217\340\250\242\245\342"; // текст "Привет" в кодировке CP-866. char l[] = "\360\322\311\327\305\324"; // текст "Привет" в кодировке KOI-8R. char m[] = "\277\340\330\322\325\342"; // текст "Привет" в кодировке ISO-8859-5. char n[] = "Привет"; // текст "Привет" в кодировке файла скетча.
В данном примере строки «j», «k», «l» и «m» занимают по 7 байт (6 символов + автоматически добавленный символ конца строки), а строка «i» занимает 13 байт (6 символов по 2 байта каждый + автоматически добавленный символ конца строки). Строка «n» может занимать либо 7, либо 13 байт, это зависит от кодировки используемой Arduino IDE.
Если в тексте с символами Кириллицы присутствуют числа, знаки или символы латиницы, то символы Кириллицы пишутся кодами, а символы знаков, цифр и латиницы можно писать символами, так как они будут корректно отображаться для практически любой кодировки.
char m[] = "\277\340\330\322\325\342 - Hello"; // текст "Привет - Hello" в кодировке ISO-8859-5.
Таблица символов:
В таблице каждому символу сопоставлен его код в десятичной , шестнадцатеричной и восьмеричной системах счисления. Для указания символа в строке, используется его код записанный в восьмеричной системе счисления (указан в таблице серым цветом и начинается обратным слешем).
Симв: | UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
пробел | 32 | 0x20 | \40 | 32 | 0x20 | \40 | 32 | 0x20 | \40 | 32 | 0x20 | \40 | 32 | 0x20 | \40 |
! | 33 | 0x21 | \41 | 33 | 0x21 | \41 | 33 | 0x21 | \41 | 33 | 0x21 | \41 | 33 | 0x21 | \41 |
« | 34 | 0x22 | \42 | 34 | 0x22 | \42 | 34 | 0x22 | \42 | 34 | 0x22 | \42 | 34 | 0x22 | \42 |
# | 35 | 0x23 | \43 | 35 | 0x23 | \43 | 35 | 0x23 | \43 | 35 | 0x23 | \43 | 35 | 0x23 | \43 |
$ | 36 | 0x24 | \44 | 36 | 0x24 | \44 | 36 | 0x24 | \44 | 36 | 0x24 | \44 | 36 | 0x24 | \44 |
% | 37 | 0x25 | \45 | 37 | 0x25 | \45 | 37 | 0x25 | \45 | 37 | 0x25 | \45 | 37 | 0x25 | \45 |
& | 38 | 0x26 | \46 | 38 | 0x26 | \46 | 38 | 0x26 | \46 | 38 | 0x26 | \46 | 38 | 0x26 | \46 |
‘ | 39 | 0x27 | \47 | 39 | 0x27 | \47 | 39 | 0x27 | \47 | 39 | 0x27 | \47 | 39 | 0x27 | \74 |
( | 40 | 0x28 | \50 | 40 | 0x28 | \50 | 40 | 0x28 | \50 | 40 | 0x28 | \50 | 40 | 0x28 | \50 |
) | 41 | 0x29 | \51 | 41 | 0x29 | \51 | 41 | 0x29 | \51 | 41 | 0x29 | \51 | 41 | 0x29 | \51 |
* | 42 | 0x2A | \52 | 42 | 0x2A | \52 | 42 | 0x2A | \52 | 42 | 0x2A | \52 | 42 | 0x2A | \52 |
+ | 43 | 0x2B | \53 | 43 | 0x2B | \53 | 43 | 0x2B | \53 | 43 | 0x2B | \53 | 43 | 0x2B | \53 |
, | 44 | 0x2C | \54 | 44 | 0x2C | \54 | 44 | 0x2C | \54 | 44 | 0x2C | \54 | 44 | 0x2C | \54 |
— | 45 | 0x2D | \55 | 45 | 0x2D | \55 | 45 | 0x2D | \55 | 45 | 0x2D | \55 | 45 | 0x2D | \55 |
. | 46 | 0x2E | \56 | 46 | 0x2E | \56 | 46 | 0x2E | \56 | 46 | 0x2E | \56 | 46 | 0x2E | \56 |
/ | 47 | 0x2F | \57 | 47 | 0x2F | \57 | 47 | 0x2F | \57 | 47 | 0x2F | \57 | 47 | 0x2F | \57 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
0 | 48 | 0x30 | \60 | 48 | 0x30 | \60 | 48 | 0x30 | \60 | 48 | 0x30 | \60 | 48 | 0x30 | \60 |
1 | 49 | 0x31 | \61 | 49 | 0x31 | \61 | 49 | 0x31 | \61 | 49 | 0x31 | \61 | 49 | 0x31 | \61 |
2 | 50 | 0x32 | \62 | 50 | 0x32 | \62 | 50 | 0x32 | \62 | 50 | 0x32 | \62 | 50 | 0x32 | \62 |
3 | 51 | 0x33 | \63 | 51 | 0x33 | \63 | 51 | 0x33 | \63 | 51 | 0x33 | \63 | 51 | 0x33 | \63 |
4 | 52 | 0x34 | \64 | 52 | 0x34 | \64 | 52 | 0x34 | \64 | 52 | 0x34 | \64 | 52 | 0x34 | \64 |
5 | 53 | 0x35 | \65 | 53 | 0x35 | \65 | 53 | 0x35 | \65 | 53 | 0x35 | \65 | 53 | 0x35 | \65 |
6 | 54 | 0x36 | \66 | 54 | 0x36 | \66 | 54 | 0x36 | \66 | 54 | 0x36 | \66 | 54 | 0x36 | \66 |
7 | 55 | 0x37 | \67 | 55 | 0x37 | \67 | 55 | 0x37 | \67 | 55 | 0x37 | \67 | 55 | 0x37 | \74 |
8 | 56 | 0x38 | \70 | 56 | 0x38 | \70 | 56 | 0x38 | \70 | 56 | 0x38 | \70 | 56 | 0x38 | \70 |
9 | 57 | 0x39 | \71 | 57 | 0x39 | \71 | 57 | 0x39 | \71 | 57 | 0x39 | \71 | 57 | 0x39 | \71 |
: | 58 | 0x3A | \72 | 58 | 0x3A | \72 | 58 | 0x3A | \72 | 58 | 0x3A | \72 | 58 | 0x3A | \72 |
; | 59 | 0x3B | \73 | 59 | 0x3B | \73 | 59 | 0x3B | \73 | 59 | 0x3B | \73 | 59 | 0x3B | \73 |
60 | 0x3C | \74 | 60 | 0x3C | \74 | 60 | 0x3C | \74 | 60 | 0x3C | \74 | 60 | 0x3C | \74 | |
= | 61 | 0x3D | \75 | 61 | 0x3D | \75 | 61 | 0x3D | \75 | 61 | 0x3D | \75 | 61 | 0x3D | \75 |
> | 62 | 0x3E | \76 | 62 | 0x3E | \76 | 62 | 0x3E | \76 | 62 | 0x3E | \76 | 62 | 0x3E | \76 |
? | 63 | 0x3F | \77 | 63 | 0x3F | \77 | 63 | 0x3F | \77 | 63 | 0x3F | \77 | 63 | 0x3F | \77 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
@ | 64 | 0x40 | \100 | 64 | 0x40 | \100 | 64 | 0x40 | \100 | 64 | 0x40 | \100 | 64 | 0x40 | \100 |
A | 65 | 0x41 | \101 | 65 | 0x41 | \101 | 65 | 0x41 | \101 | 65 | 0x41 | \101 | 65 | 0x41 | \101 |
B | 66 | 0x42 | \102 | 66 | 0x42 | \102 | 66 | 0x42 | \102 | 66 | 0x42 | \102 | 66 | 0x42 | \102 |
C | 67 | 0x43 | \103 | 67 | 0x43 | \103 | 67 | 0x43 | \103 | 67 | 0x43 | \103 | 67 | 0x43 | \103 |
D | 68 | 0x44 | \104 | 68 | 0x44 | \104 | 68 | 0x44 | \104 | 68 | 0x44 | \104 | 68 | 0x44 | \104 |
E | 69 | 0x45 | \105 | 69 | 0x45 | \105 | 69 | 0x45 | \105 | 69 | 0x45 | \105 | 69 | 0x45 | \105 |
F | 70 | 0x46 | \106 | 70 | 0x46 | \106 | 70 | 0x46 | \106 | 70 | 0x46 | \106 | 70 | 0x46 | \106 |
G | 71 | 0x47 | \107 | 71 | 0x47 | \107 | 71 | 0x47 | \107 | 71 | 0x47 | \107 | 71 | 0x47 | \114 |
H | 72 | 0x48 | \110 | 72 | 0x48 | \110 | 72 | 0x48 | \110 | 72 | 0x48 | \110 | 72 | 0x48 | \110 |
I | 73 | 0x49 | \111 | 73 | 0x49 | \111 | 73 | 0x49 | \111 | 73 | 0x49 | \111 | 73 | 0x49 | \111 |
J | 74 | 0x4A | \112 | 74 | 0x4A | \112 | 74 | 0x4A | \112 | 74 | 0x4A | \112 | 74 | 0x4A | \112 |
K | 75 | 0x4B | \113 | 75 | 0x4B | \113 | 75 | 0x4B | \113 | 75 | 0x4B | \113 | 75 | 0x4B | \113 |
L | 76 | 0x4C | \114 | 76 | 0x4C | \114 | 76 | 0x4C | \114 | 76 | 0x4C | \114 | 76 | 0x4C | \114 |
M | 77 | 0x4D | \115 | 77 | 0x4D | \115 | 77 | 0x4D | \115 | 77 | 0x4D | \115 | 77 | 0x4D | \115 |
N | 78 | 0x4E | \116 | 78 | 0x4E | \116 | 78 | 0x4E | \116 | 78 | 0x4E | \116 | 78 | 0x4E | \116 |
O | 79 | 0x4F | \117 | 79 | 0x4F | \117 | 79 | 0x4F | \117 | 79 | 0x4F | \117 | 79 | 0x4F | \117 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
P | 80 | 0x50 | \120 | 80 | 0x50 | \120 | 80 | 0x50 | \120 | 80 | 0x50 | \120 | 80 | 0x50 | \120 |
Q | 81 | 0x51 | \121 | 81 | 0x51 | \121 | 81 | 0x51 | \121 | 81 | 0x51 | \121 | 81 | 0x51 | \121 |
R | 82 | 0x52 | \122 | 82 | 0x52 | \122 | 82 | 0x52 | \122 | 82 | 0x52 | \122 | 82 | 0x52 | \122 |
S | 83 | 0x53 | \123 | 83 | 0x53 | \123 | 83 | 0x53 | \123 | 83 | 0x53 | \123 | 83 | 0x53 | \123 |
T | 84 | 0x54 | \124 | 84 | 0x54 | \124 | 84 | 0x54 | \124 | 84 | 0x54 | \124 | 84 | 0x54 | \124 |
U | 85 | 0x55 | \125 | 85 | 0x55 | \125 | 85 | 0x55 | \125 | 85 | 0x55 | \125 | 85 | 0x55 | \125 |
V | 86 | 0x56 | \126 | 86 | 0x56 | \126 | 86 | 0x56 | \126 | 86 | 0x56 | \126 | 86 | 0x56 | \126 |
W | 87 | 0x57 | \127 | 87 | 0x57 | \127 | 87 | 0x57 | \127 | 87 | 0x57 | \127 | 87 | 0x57 | \134 |
X | 88 | 0x58 | \130 | 88 | 0x58 | \130 | 88 | 0x58 | \130 | 88 | 0x58 | \130 | 88 | 0x58 | \130 |
Y | 89 | 0x59 | \131 | 89 | 0x59 | \131 | 89 | 0x59 | \131 | 89 | 0x59 | \131 | 89 | 0x59 | \131 |
Z | 90 | 0x5A | \132 | 90 | 0x5A | \132 | 90 | 0x5A | \132 | 90 | 0x5A | \132 | 90 | 0x5A | \132 |
[ | 91 | 0x5B | \133 | 91 | 0x5B | \133 | 91 | 0x5B | \133 | 91 | 0x5B | \133 | 91 | 0x5B | \133 |
\ | 92 | 0x5C | \134 | 92 | 0x5C | \134 | 92 | 0x5C | \134 | 92 | 0x5C | \134 | 92 | 0x5C | \134 |
] | 93 | 0x5D | \135 | 93 | 0x5D | \135 | 93 | 0x5D | \135 | 93 | 0x5D | \135 | 93 | 0x5D | \135 |
^ | 94 | 0x5E | \136 | 94 | 0x5E | \136 | 94 | 0x5E | \136 | 94 | 0x5E | \136 | 94 | 0x5E | \136 |
_ | 95 | 0x5F | \137 | 95 | 0x5F | \137 | 95 | 0x5F | \137 | 95 | 0x5F | \137 | 95 | 0x5F | \137 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
` | 96 | 0x60 | \140 | 96 | 0x60 | \140 | 96 | 0x60 | \140 | 96 | 0x60 | \140 | 96 | 0x60 | \140 |
a | 97 | 0x61 | \141 | 97 | 0x61 | \141 | 97 | 0x61 | \141 | 97 | 0x61 | \141 | 97 | 0x61 | \141 |
b | 98 | 0x62 | \142 | 98 | 0x62 | \142 | 98 | 0x62 | \142 | 98 | 0x62 | \142 | 98 | 0x62 | \142 |
c | 99 | 0x63 | \143 | 99 | 0x63 | \143 | 99 | 0x63 | \143 | 99 | 0x63 | \143 | 99 | 0x63 | \143 |
d | 100 | 0x64 | \144 | 100 | 0x64 | \144 | 100 | 0x64 | \144 | 100 | 0x64 | \144 | 100 | 0x64 | \144 |
e | 101 | 0x65 | \145 | 101 | 0x65 | \145 | 101 | 0x65 | \145 | 101 | 0x65 | \145 | 101 | 0x65 | \145 |
f | 102 | 0x66 | \146 | 102 | 0x66 | \146 | 102 | 0x66 | \146 | 102 | 0x66 | \146 | 102 | 0x66 | \146 |
g | 103 | 0x67 | \147 | 103 | 0x67 | \147 | 103 | 0x67 | \147 | 103 | 0x67 | \147 | 103 | 0x67 | \154 |
h | 104 | 0x68 | \150 | 104 | 0x68 | \150 | 104 | 0x68 | \150 | 104 | 0x68 | \150 | 104 | 0x68 | \150 |
i | 105 | 0x69 | \151 | 105 | 0x69 | \151 | 105 | 0x69 | \151 | 105 | 0x69 | \151 | 105 | 0x69 | \151 |
j | 106 | 0x6A | \152 | 106 | 0x6A | \152 | 106 | 0x6A | \152 | 106 | 0x6A | \152 | 106 | 0x6A | \152 |
k | 107 | 0x6B | \153 | 107 | 0x6B | \153 | 107 | 0x6B | \153 | 107 | 0x6B | \153 | 107 | 0x6B | \153 |
l | 108 | 0x6C | \154 | 108 | 0x6C | \154 | 108 | 0x6C | \154 | 108 | 0x6C | \154 | 108 | 0x6C | \154 |
m | 109 | 0x6D | \155 | 109 | 0x6D | \155 | 109 | 0x6D | \155 | 109 | 0x6D | \155 | 109 | 0x6D | \155 |
n | 110 | 0x6E | \156 | 110 | 0x6E | \156 | 110 | 0x6E | \156 | 110 | 0x6E | \156 | 110 | 0x6E | \156 |
o | 111 | 0x6F | \157 | 111 | 0x6F | \157 | 111 | 0x6F | \157 | 111 | 0x6F | \157 | 111 | 0x6F | \157 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
p | 112 | 0x70 | \160 | 112 | 0x70 | \160 | 112 | 0x70 | \160 | 112 | 0x70 | \160 | 112 | 0x70 | \160 |
q | 113 | 0x71 | \161 | 113 | 0x71 | \161 | 113 | 0x71 | \161 | 113 | 0x71 | \161 | 113 | 0x71 | \161 |
r | 114 | 0x72 | \162 | 114 | 0x72 | \162 | 114 | 0x72 | \162 | 114 | 0x72 | \162 | 114 | 0x72 | \162 |
s | 115 | 0x73 | \163 | 115 | 0x73 | \163 | 115 | 0x73 | \163 | 115 | 0x73 | \163 | 115 | 0x73 | \163 |
t | 116 | 0x74 | \164 | 116 | 0x74 | \164 | 116 | 0x74 | \164 | 116 | 0x74 | \164 | 116 | 0x74 | \164 |
u | 117 | 0x75 | \165 | 117 | 0x75 | \165 | 117 | 0x75 | \165 | 117 | 0x75 | \165 | 117 | 0x75 | \165 |
v | 118 | 0x76 | \166 | 118 | 0x76 | \166 | 118 | 0x76 | \166 | 118 | 0x76 | \166 | 118 | 0x76 | \166 |
w | 119 | 0x77 | \167 | 119 | 0x77 | \167 | 119 | 0x77 | \167 | 119 | 0x77 | \167 | 119 | 0x77 | \174 |
x | 120 | 0x78 | \170 | 120 | 0x78 | \170 | 120 | 0x78 | \170 | 120 | 0x78 | \170 | 120 | 0x78 | \170 |
y | 121 | 0x79 | \171 | 121 | 0x79 | \171 | 121 | 0x79 | \171 | 121 | 0x79 | \171 | 121 | 0x79 | \171 |
z | 122 | 0x7A | \172 | 122 | 0x7A | \172 | 122 | 0x7A | \172 | 122 | 0x7A | \172 | 122 | 0x7A | \172 |
123 | 0x7B | \173 | 123 | 0x7B | \173 | 123 | 0x7B | \173 | 123 | 0x7B | \173 | 123 | 0x7B | \173 | |
| | 124 | 0x7C | \174 | 124 | 0x7C | \174 | 124 | 0x7C | \174 | 124 | 0x7C | \174 | 124 | 0x7C | \174 |
> | 125 | 0x7D | \175 | 125 | 0x7D | \175 | 125 | 0x7D | \175 | 125 | 0x7D | \175 | 125 | 0x7D | \175 |
~ | 126 | 0x7E | \176 | 126 | 0x7E | \176 | 126 | 0x7E | \176 | 126 | 0x7E | \176 | 126 | 0x7E | \176 |
⌂ | 127 | 0x7F | \177 | 127 | 0x7F | \177 | 127 | 0x7F | \177 | 127 | 0x7F | \177 | 127 | 0x7F | \177 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
А | 208, 144 | 0xD0, 0x90 | \320\220 | 192 | 0xC0 | \300 | 128 | 0x80 | \200 | 225 | 0xE1 | \341 | 176 | 0xB0 | \260 |
Б | 208, 145 | 0xD0, 0x91 | \320\221 | 193 | 0xC1 | \301 | 129 | 0x81 | \201 | 226 | 0xE2 | \342 | 177 | 0xB1 | \261 |
В | 208, 146 | 0xD0, 0x92 | \320\222 | 194 | 0xC2 | \302 | 130 | 0x82 | \202 | 247 | 0xF7 | \367 | 178 | 0xB2 | \262 |
Г | 208, 147 | 0xD0, 0x93 | \320\223 | 195 | 0xC3 | \303 | 131 | 0x83 | \203 | 231 | 0xE7 | \347 | 179 | 0xB3 | \263 |
Д | 208, 148 | 0xD0, 0x94 | \320\224 | 196 | 0xC4 | \304 | 132 | 0x84 | \204 | 228 | 0xE4 | \344 | 180 | 0xB4 | \264 |
Е | 208, 149 | 0xD0, 0x95 | \320\225 | 197 | 0xC5 | \305 | 133 | 0x85 | \205 | 229 | 0xE5 | \345 | 181 | 0xB5 | \265 |
Ж | 208, 150 | 0xD0, 0x96 | \320\226 | 198 | 0xC6 | \306 | 134 | 0x86 | \206 | 246 | 0xF6 | \366 | 182 | 0xB6 | \266 |
З | 208, 151 | 0xD0, 0x97 | \320\227 | 199 | 0xC7 | \307 | 135 | 0x87 | \207 | 250 | 0xFA | \372 | 183 | 0xB7 | \267 |
И | 208, 152 | 0xD0, 0x98 | \320\230 | 200 | 0xC8 | \310 | 136 | 0x88 | \210 | 233 | 0xE9 | \351 | 184 | 0xB8 | \270 |
Й | 208, 153 | 0xD0, 0x99 | \320\231 | 201 | 0xC9 | \311 | 137 | 0x89 | \211 | 234 | 0xEA | \352 | 185 | 0xB9 | \271 |
К | 208, 154 | 0xD0, 0x9A | \320\232 | 202 | 0xCA | \312 | 138 | 0x8A | \212 | 235 | 0xEB | \353 | 186 | 0xBA | \272 |
Л | 208, 155 | 0xD0, 0x9B | \320\233 | 203 | 0xCB | \313 | 139 | 0x8B | \213 | 236 | 0xEC | \354 | 187 | 0xBB | \273 |
М | 208, 156 | 0xD0, 0x9C | \320\234 | 204 | 0xCC | \314 | 140 | 0x8C | \214 | 237 | 0xED | \355 | 188 | 0xBC | \274 |
Н | 208, 157 | 0xD0, 0x9D | \320\235 | 205 | 0xCD | \315 | 141 | 0x8D | \215 | 238 | 0xEE | \356 | 189 | 0xBD | \275 |
О | 208, 158 | 0xD0, 0x9E | \320\236 | 206 | 0xCE | \316 | 142 | 0x8E | \216 | 239 | 0xEF | \357 | 190 | 0xBE | \276 |
П | 208, 159 | 0xD0, 0x9F | \320\237 | 207 | 0xCF | \317 | 143 | 0x8F | \217 | 240 | 0xF0 | \360 | 191 | 0xBF | \277 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
Р | 208, 160 | 0xD0, 0xA0 | \320\240 | 208 | 0xD0 | \320 | 144 | 0x90 | \220 | 242 | 0xF2 | \362 | 192 | 0xC0 | \300 |
С | 208, 161 | 0xD0, 0xA1 | \320\241 | 209 | 0xD1 | \321 | 145 | 0x91 | \221 | 243 | 0xF3 | \363 | 193 | 0xC1 | \301 |
Т | 208, 162 | 0xD0, 0xA2 | \320\242 | 210 | 0xD2 | \322 | 146 | 0x92 | \222 | 244 | 0xF4 | \364 | 194 | 0xC2 | \302 |
У | 208, 163 | 0xD0, 0xA3 | \320\243 | 211 | 0xD3 | \323 | 147 | 0x93 | \223 | 245 | 0xF5 | \365 | 195 | 0xC3 | \303 |
Ф | 208, 164 | 0xD0, 0xA4 | \320\244 | 212 | 0xD4 | \324 | 148 | 0x94 | \224 | 230 | 0xE6 | \346 | 196 | 0xC4 | \304 |
Х | 208, 165 | 0xD0, 0xA5 | \320\245 | 213 | 0xD5 | \325 | 149 | 0x95 | \225 | 232 | 0xE8 | \350 | 197 | 0xC5 | \305 |
Ц | 208, 166 | 0xD0, 0xA6 | \320\246 | 214 | 0xD6 | \326 | 150 | 0x96 | \226 | 227 | 0xE3 | \343 | 198 | 0xC6 | \306 |
Ч | 208, 167 | 0xD0, 0xA7 | \320\247 | 215 | 0xD7 | \327 | 151 | 0x97 | \227 | 254 | 0xFE | \376 | 199 | 0xC7 | \307 |
Ш | 208, 168 | 0xD0, 0xA8 | \320\250 | 216 | 0xD8 | \330 | 152 | 0x98 | \230 | 251 | 0xFB | \373 | 200 | 0xC8 | \310 |
Щ | 208, 169 | 0xD0, 0xA9 | \320\251 | 217 | 0xD9 | \331 | 153 | 0x99 | \231 | 253 | 0xFD | \375 | 201 | 0xC9 | \311 |
Ъ | 208, 170 | 0xD0, 0xAA | \320\252 | 218 | 0xDA | \332 | 154 | 0x9A | \232 | 255 | 0xFF | \377 | 202 | 0xCA | \312 |
Ы | 208, 171 | 0xD0, 0xAB | \320\253 | 219 | 0xDB | \333 | 155 | 0x9B | \233 | 249 | 0xF9 | \371 | 203 | 0xCB | \313 |
Ь | 208, 172 | 0xD0, 0xAC | \320\254 | 220 | 0xDC | \334 | 156 | 0x9C | \234 | 248 | 0xF8 | \370 | 204 | 0xCC | \314 |
Э | 208, 173 | 0xD0, 0xAD | \320\255 | 221 | 0xDD | \335 | 157 | 0x9D | \235 | 252 | 0xFC | \374 | 205 | 0xCD | \315 |
Ю | 208, 174 | 0xD0, 0xAE | \320\256 | 222 | 0xDE | \336 | 158 | 0x9E | \236 | 224 | 0xE0 | \340 | 206 | 0xCE | \316 |
Я | 208, 175 | 0xD0, 0xAF | \320\257 | 223 | 0xDF | \337 | 159 | 0x9F | \237 | 241 | 0xF1 | \361 | 207 | 0xCF | \317 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
а | 208, 176 | 0xD0, 0xB0 | \320\260 | 224 | 0xE0 | \340 | 160 | 0xA0 | \240 | 193 | 0xC1 | \301 | 208 | 0xD0 | \320 |
б | 208, 177 | 0xD0, 0xB1 | \320\261 | 225 | 0xE1 | \341 | 161 | 0xA1 | \241 | 194 | 0xC2 | \302 | 209 | 0xD1 | \321 |
в | 208, 178 | 0xD0, 0xB2 | \320\262 | 226 | 0xE2 | \342 | 162 | 0xA2 | \242 | 215 | 0xD7 | \327 | 210 | 0xD2 | \322 |
г | 208, 179 | 0xD0, 0xB3 | \320\263 | 227 | 0xE3 | \343 | 163 | 0xA3 | \243 | 199 | 0xC7 | \307 | 211 | 0xD3 | \323 |
д | 208, 180 | 0xD0, 0xB4 | \320\264 | 228 | 0xE4 | \344 | 164 | 0xA4 | \244 | 196 | 0xC4 | \304 | 212 | 0xD4 | \324 |
е | 208, 181 | 0xD0, 0xB5 | \320\265 | 229 | 0xE5 | \345 | 165 | 0xA5 | \245 | 197 | 0xC5 | \305 | 213 | 0xD5 | \325 |
ж | 208, 182 | 0xD0, 0xB6 | \320\266 | 230 | 0xE6 | \346 | 166 | 0xA6 | \246 | 214 | 0xD6 | \326 | 214 | 0xD6 | \326 |
з | 208, 183 | 0xD0, 0xB7 | \320\267 | 231 | 0xE7 | \347 | 167 | 0xA7 | \247 | 218 | 0xDA | \332 | 215 | 0xD7 | \327 |
и | 208, 184 | 0xD0, 0xB8 | \320\270 | 232 | 0xE8 | \350 | 168 | 0xA8 | \250 | 201 | 0xC9 | \311 | 216 | 0xD8 | \330 |
й | 208, 185 | 0xD0, 0xB9 | \320\271 | 233 | 0xE9 | \351 | 169 | 0xA9 | \251 | 202 | 0xCA | \312 | 217 | 0xD9 | \331 |
к | 208, 186 | 0xD0, 0xBA | \320\272 | 234 | 0xEA | \352 | 170 | 0xAA | \252 | 203 | 0xCB | \313 | 218 | 0xDA | \332 |
л | 208, 187 | 0xD0, 0xBB | \320\273 | 235 | 0xEB | \353 | 171 | 0xAB | \253 | 204 | 0xCC | \314 | 219 | 0xDB | \333 |
м | 208, 188 | 0xD0, 0xBC | \320\274 | 236 | 0xEC | \354 | 172 | 0xAC | \254 | 205 | 0xCD | \315 | 220 | 0xDC | \334 |
н | 208, 189 | 0xD0, 0xBD | \320\275 | 237 | 0xED | \355 | 173 | 0xAD | \255 | 206 | 0xCE | \316 | 221 | 0xDD | \335 |
о | 208, 190 | 0xD0, 0xBE | \320\276 | 238 | 0xEE | \356 | 174 | 0xAE | \256 | 207 | 0xCF | \317 | 222 | 0xDE | \336 |
п | 208, 191 | 0xD0, 0xBF | \320\277 | 239 | 0xEF | \357 | 175 | 0xAF | \257 | 208 | 0xD0 | \320 | 223 | 0xDF | \337 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
р | 209, 128 | 0xD1, 0x80 | \321\200 | 240 | 0xF0 | \360 | 224 | 0xE0 | \340 | 210 | 0xD2 | \322 | 224 | 0xE0 | \340 |
с | 209, 129 | 0xD1, 0x81 | \321\201 | 241 | 0xF1 | \361 | 225 | 0xE1 | \341 | 211 | 0xD3 | \323 | 225 | 0xE1 | \341 |
т | 209, 130 | 0xD1, 0x82 | \321\202 | 242 | 0xF2 | \362 | 226 | 0xE2 | \342 | 212 | 0xD4 | \324 | 226 | 0xE2 | \342 |
у | 209, 131 | 0xD1, 0x83 | \321\203 | 243 | 0xF3 | \363 | 227 | 0xE3 | \343 | 213 | 0xD5 | \325 | 227 | 0xE3 | \343 |
ф | 209, 132 | 0xD1, 0x84 | \321\204 | 244 | 0xF4 | \364 | 228 | 0xE4 | \344 | 198 | 0xC6 | \306 | 228 | 0xE4 | \344 |
х | 209, 133 | 0xD1, 0x85 | \321\205 | 245 | 0xF5 | \365 | 229 | 0xE5 | \345 | 200 | 0xC8 | \310 | 229 | 0xE5 | \345 |
ц | 209, 134 | 0xD1, 0x86 | \321\206 | 246 | 0xF6 | \366 | 230 | 0xE6 | \346 | 195 | 0xC3 | \303 | 230 | 0xE6 | \346 |
ч | 209, 135 | 0xD1, 0x87 | \321\207 | 247 | 0xF7 | \367 | 231 | 0xE7 | \347 | 222 | 0xDE | \336 | 231 | 0xE7 | \347 |
ш | 209, 136 | 0xD1, 0x88 | \321\210 | 248 | 0xF8 | \370 | 232 | 0xE8 | \350 | 219 | 0xDB | \333 | 232 | 0xE8 | \350 |
щ | 209, 137 | 0xD1, 0x89 | \321\211 | 249 | 0xF9 | \371 | 233 | 0xE9 | \351 | 221 | 0xDD | \335 | 233 | 0xE9 | \351 |
ъ | 209, 138 | 0xD1, 0x8A | \321\212 | 250 | 0xFA | \372 | 234 | 0xEA | \352 | 223 | 0xDF | \337 | 234 | 0xEA | \352 |
ы | 209, 139 | 0xD1, 0x8B | \321\213 | 251 | 0xFB | \373 | 235 | 0xEB | \353 | 217 | 0xD9 | \331 | 235 | 0xEB | \353 |
ь | 209, 140 | 0xD1, 0x8C | \321\214 | 252 | 0xFC | \374 | 236 | 0xEC | \354 | 216 | 0xD8 | \330 | 236 | 0xEC | \354 |
э | 209, 141 | 0xD1, 0x8D | \321\215 | 253 | 0xFD | \375 | 237 | 0xED | \355 | 220 | 0xDC | \334 | 237 | 0xED | \355 |
ю | 209, 142 | 0xD1, 0x8E | \321\216 | 254 | 0xFE | \376 | 238 | 0xEE | \356 | 192 | 0xC0 | \300 | 238 | 0xEE | \356 |
я | 209, 143 | 0xD1, 0x8F | \321\217 | 255 | 0xFF | \377 | 239 | 0xEF | \357 | 209 | 0xD1 | \321 | 239 | 0xEF | \357 |
UTF-8 | Win-1251 | CP-866 | KOI-8R | ISO-8859-5 | |||||||||||
Ё | 208, 129 | 0xD0, 0x81 | \320\201 | 168 | 0xA8 | \250 | 240 | 0xF0 | \360 | 179 | 0xB3 | \263 | 161 | 0xA1 | \241 |
ё | 209, 145 | 0xD1, 0x91 | \321\221 | 184 | 0xB8 | \270 | 241 | 0xF1 | \361 | 163 | 0xA3 | \243 | 241 | 0xF1 | \361 |
В данной таблице символов указаны сразу 5 кодировок: «UTF-8», «Windows-1251», «CP-866», «KOI-8R» и «ISO-8859-5». Коды символов от 0 до 127 совпадают для всех кодировок. В кодировке «UTF-8» символы Кириллицы занимают 2 байта, следовательно, для них указано 2 числа.
Стоит отметить кодировку «KOI-8R» в которой (в отличии от остальных) на первый взгляд не просматривается закономерность следования кодов, но на самом деле закономерность есть и заключается она в том, что если сбросить старший бит, то код символа Кириллицы превратится в код сходного по произношению символа латиницы, и наоборот. Например символ «л» записывается кодом 0xCC, если сбросить старший бит то получится 0x4C, а это код символа «L». Значит, если в тексте из символов Кириллицы сбросить старшие биты кода каждого символа, то получится «читаемый» текст из символов латиницы, подобный транслиту.
Примечание:
К недостаткам записи строк кодами символов относится то, что строки в скетче становятся не удобочитаемыми. В качестве альтернативного варианта можно создать функцию преобразования кодировки строк перед их выводом, или хранить строки из символов Кириллицы в отдельном, подключаемом, файле, который будет сохранён в требуемой для вывода кодировке.