Отличие кодировки windows-1251 от utf-8
Чем отличается и когда и где лучше применять один или другой:
Отслеживать
5,851 1 1 золотой знак 21 21 серебряный знак 29 29 бронзовых знаков
задан 28 окт 2011 в 17:11
2,468 22 22 золотых знака 50 50 серебряных знаков 96 96 бронзовых знаков
Победа utf-8 — неизбежна.
28 окт 2011 в 17:26
Это ясно, но сейчас, чтобы браузеры по умолчанию настроены на windows-1251 (((
28 окт 2011 в 17:33
смотря под какой ОС вы сидите 😉
28 окт 2011 в 18:27
убунту. написал для себя страничку, закодировал в utf-8. Все браузеры вместо русских букв выдали кракозябры, пока я их не заставил определять Юникод. Вот так.
28 окт 2011 в 18:47
если не лазил ручками в настройки то в linux и ubuntu в частности браузер по умолчанию выставляет кодировку локали (к примеру у меня utf8) проблеммы наблюдаются только на тех страницах где или не указана локаль или указана неверно (К примеру в заголовке utf8 а сама страница в win1251)
Атрибут charset
Указывает кодировку документа. Атрибут введен в HTML5 и предназначен для сокращения формы тега , которая задавала кодировку в предыдущих версиях HTML и XHTML.
Синтаксис
Значения
Название кодировки, например UTF-8.
Значение по умолчанию
HTML5 IE Cr Op Sa Fx
Тег META, атрибут charset Типовой документ.
Не выкладывайте свой код напрямую в комментариях, он отображается некорректно. Воспользуйтесь сервисом cssdeck.com или jsfiddle.net, сохраните код и в комментариях дайте на него ссылку. Так и результат сразу увидят.
Типы тегов
HTML5
Блочные элементы
Строчные элементы
Универсальные элементы
Нестандартные теги
Осуждаемые теги
Видео
Документ
Звук
Изображения
Объекты
Скрипты
Списки
Ссылки
Таблицы
Текст
Форматирование
Формы
Фреймы
Кодировки 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». Значит, если в тексте из символов Кириллицы сбросить старшие биты кода каждого символа, то получится «читаемый» текст из символов латиницы, подобный транслиту.
Примечание:
К недостаткам записи строк кодами символов относится то, что строки в скетче становятся не удобочитаемыми. В качестве альтернативного варианта можно создать функцию преобразования кодировки строк перед их выводом, или хранить строки из символов Кириллицы в отдельном, подключаемом, файле, который будет сохранён в требуемой для вывода кодировке.
Кодировка символов Windows-1251
Windows-1251 — набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Данная кодировка пользуется довольно большой популярностью в восточно-европейских странах. Windows-1251 выгодно отличается от других 8-битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в традиционной русской типографике для обычного текста (отсутствует только знак ударения). Кириллические символы идут в алфавитном порядке.
Windows-1251 также содержит все символы для близких к русскому языку языков: белорусского, украинского, сербского, македонского и болгарского.
На практике этого оказалось достаточно, чтобы кодировка Windows-1251 закрепилась в интернете вплоть до распространения UTF-8.
Таблица кодов символов Windows-1251
Описание специальных (управляющих) символов
Первоначально управляющие символы таблицы ASCII (диапазон 00-31, плюс 127) были разработаны для того, чтобы управлять устройствами аппаратных средств, таких как телетайп, ввод данных на перфоленту и др.
Управляющие символы (кроме горизонтальной табуляции, перевода строки и возврата каретки) не используются в HTML-документах.