Skip to content

Таблица ASCII и конвертер

Полная таблица ASCII: 128 символов в десятичном, шестнадцатеричном, восьмеричном и двоичном виде плюс конвертер текста и кодов. Управляющие символы — с escape-последовательностями, caret-записью и тем, где их встретить.

Без отслеживания Работает в браузере Бесплатно

Всё выполняется в вашем браузере — введённые данные не загружаются, не логируются и не сохраняются.

Текст и коды ASCII в обе стороны

Полная таблица ASCII (0–127)

128 / 128
Дес. Шестн. Восьм. Двоичное Символ Название Escape Caret HTML Где вы его встретите
0 00 000 00000000 NUL Null \0 ^@ � Завершитель строк в C; разделяет имена файлов в find -print0 и xargs -0; заставляет grep выдавать «Binary file matches».
1 01 001 00000001 SOH Start of Heading ^A  Протокол FIX использует его как разделитель полей, поэтому сообщения FIX выглядят как одна слитная строка.
2 02 002 00000010 STX Start of Text ^B  Заголовок кадра в протоколах последовательного порта, POS-терминалов и сканеров штрихкодов; префиксная клавиша tmux — Ctrl+B.
3 03 003 00000011 ETX End of Text ^C  Ctrl+C отправляет именно этот байт; дисциплина линии tty превращает его в SIGINT, так что программа его не видит.
4 04 004 00000100 EOT End of Transmission ^D  Ctrl+D отправляет текущую строку ввода; когда строка пуста, read возвращает 0 байт — вот это и есть EOF.
5 05 005 00000101 ENQ Enquiry ^E  Рукопожатия в старых линиях связи; некоторые терминалы отвечают на него строкой идентификации.
6 06 006 00000110 ACK Acknowledge ^F  В паре с ENQ и NAK в старых протоколах канального уровня; до сих пор встречается в промышленном оборудовании.
7 07 007 00000111 BEL Bell \a ^G  printf '\a' подаёт звонок; сегодня чаще завершает последовательность OSC, например установку заголовка окна.
8 08 010 00001000 BS Backspace \b ^H  Стирание в индикаторах прогресса. Учтите, что большинство терминалов отправляет по Backspace байт 0x7F, а не этот.
9 09 011 00001001 HT Character Tabulation \t ^I 	 Рецепты Makefile обязаны начинаться с настоящего TAB; gofmt делает отступы табуляцией; клавиша Tab и Ctrl+I — один и тот же байт.
10 0A 012 00001010 LF Line Feed \n ^J 
 Перевод строки в Unix и macOS; настройка core.autocrlf в git конвертирует между ним и CRLF.
11 0B 013 00001011 VT Line Tabulation \v ^K  Почти вымер, но всё ещё считается разрывом строки: splitlines() делит по нему, а split("\n") — нет.
12 0C 014 00001100 FF Form Feed \f ^L  Разрыв страницы для принтера; Ctrl+L очищает терминал; Emacs использует его как разделитель разделов в исходниках.
13 0D 015 00001101 CR Carriage Return \r ^M 
 Первая половина Windows CRLF; выглядит как ^M в git diff; вызывает «bad interpreter: /bin/bash^M».
14 0E 016 00001110 SO Shift Out ^N  Переключает на альтернативный набор символов G1 в ISO 2022; на мейнфреймах EBCDIC обрамляет двухбайтовые области.
15 0F 017 00001111 SI Shift In ^O  Возвращает к набору символов G0 по умолчанию, в паре с SO.
16 10 020 00010000 DLE Data Link Escape ^P  Префикс экранирования при байт-стаффинге в старых двоичных протоколах.
17 11 021 00010001 DC1 Device Control One ^Q  XON — возобновление программного управления потоком; Ctrl+Q размораживает вывод терминала.
18 12 022 00010010 DC2 Device Control Two ^R  Устойчивого современного смысла нет. Ctrl+R в оболочке — привязка клавиши readline, к этому коду отношения не имеет.
19 13 023 00010011 DC3 Device Control Three ^S  XOFF — приостановка программного управления потоком. Случайное нажатие Ctrl+S — обычная причина «зависшего» терминала.
20 14 024 00010100 DC4 Device Control Four ^T  Устойчивого современного смысла нет; в BSD и macOS Ctrl+T — клавиша состояния tty.
21 15 025 00010101 NAK Negative Acknowledge ^U  Ctrl+U стирает всю строку — это настройка kill в tty, а не исходный смысл данного кода.
22 16 026 00010110 SYN Synchronous Idle ^V  Ctrl+V — это lnext: нажмите его, затем Tab, чтобы ввести настоящий TAB в bash, не запуская автодополнение.
23 17 027 00010111 ETB End of Transmission Block ^W  Ctrl+W стирает предыдущее слово — настройка werase в tty.
24 18 030 00011000 CAN Cancel ^X  ECMA-48 применяет его для прерывания незавершённой управляющей последовательности; терминалы отбрасывают разбираемую последовательность.
25 19 031 00011001 EM End of Medium ^Y  Сегодня почти не используется; в BSD и macOS Ctrl+Y — отложенная приостановка.
26 1A 032 00011010 SUB Substitute ^Z  Маркер конца файла в текстовых файлах CP/M и DOS, поэтому консоль Windows завершает ввод по Ctrl+Z.
27 1B 033 00011011 ESC Escape ^[  Начало любой escape-последовательности ANSI: \033[0m сбрасывает цвет, \033[2J очищает экран. Ctrl+[ отправляет его же.
28 1C 034 00011100 FS File Separator ^\  Обрамление MLLP в HL7 v2 использует его как завершитель блока; Ctrl+\ отправляет SIGQUIT.
29 1D 035 00011101 GS Group Separator ^]  В штрихкодах GS1 разделитель FNC1 представлен именно этим байтом — тот самый невидимый разделитель из вывода сканера.
30 1E 036 00011110 RS Record Separator ^^  Текстовые последовательности JSON из RFC 7464 предваряют им каждую запись. Одно из немногих живых современных применений.
31 1F 037 00011111 US Unit Separator ^_  Разделитель полей в структурированном тексте, безопаснее запятой, потому что в полезных данных он практически не встречается.
32 20 040 00100000 Space  
33 21 041 00100001 Exclamation Mark !
34 22 042 00100010 Quotation Mark "
35 23 043 00100011 Number Sign #
36 24 044 00100100 Dollar Sign $
37 25 045 00100101 Percent Sign %
38 26 046 00100110 Ampersand &
39 27 047 00100111 Apostrophe '
40 28 050 00101000 Left Parenthesis (
41 29 051 00101001 Right Parenthesis )
42 2A 052 00101010 Asterisk *
43 2B 053 00101011 Plus Sign +
44 2C 054 00101100 Comma ,
45 2D 055 00101101 Hyphen-Minus -
46 2E 056 00101110 Full Stop .
47 2F 057 00101111 Solidus /
48 30 060 00110000 Digit Zero 0
49 31 061 00110001 Digit One 1
50 32 062 00110010 Digit Two 2
51 33 063 00110011 Digit Three 3
52 34 064 00110100 Digit Four 4
53 35 065 00110101 Digit Five 5
54 36 066 00110110 Digit Six 6
55 37 067 00110111 Digit Seven 7
56 38 070 00111000 Digit Eight 8
57 39 071 00111001 Digit Nine 9
58 3A 072 00111010 Colon :
59 3B 073 00111011 Semicolon &#59;
60 3C 074 00111100 Less-Than Sign <
61 3D 075 00111101 Equals Sign =
62 3E 076 00111110 Greater-Than Sign >
63 3F 077 00111111 Question Mark ?
64 40 100 01000000 Commercial At @
65 41 101 01000001 Latin Capital Letter A A
66 42 102 01000010 Latin Capital Letter B B
67 43 103 01000011 Latin Capital Letter C C
68 44 104 01000100 Latin Capital Letter D D
69 45 105 01000101 Latin Capital Letter E E
70 46 106 01000110 Latin Capital Letter F F
71 47 107 01000111 Latin Capital Letter G G
72 48 110 01001000 Latin Capital Letter H H
73 49 111 01001001 Latin Capital Letter I I
74 4A 112 01001010 Latin Capital Letter J J
75 4B 113 01001011 Latin Capital Letter K K
76 4C 114 01001100 Latin Capital Letter L L
77 4D 115 01001101 Latin Capital Letter M M
78 4E 116 01001110 Latin Capital Letter N N
79 4F 117 01001111 Latin Capital Letter O O
80 50 120 01010000 Latin Capital Letter P P
81 51 121 01010001 Latin Capital Letter Q Q
82 52 122 01010010 Latin Capital Letter R R
83 53 123 01010011 Latin Capital Letter S S
84 54 124 01010100 Latin Capital Letter T T
85 55 125 01010101 Latin Capital Letter U U
86 56 126 01010110 Latin Capital Letter V V
87 57 127 01010111 Latin Capital Letter W W
88 58 130 01011000 Latin Capital Letter X X
89 59 131 01011001 Latin Capital Letter Y Y
90 5A 132 01011010 Latin Capital Letter Z Z
91 5B 133 01011011 Left Square Bracket [
92 5C 134 01011100 Reverse Solidus \
93 5D 135 01011101 Right Square Bracket ]
94 5E 136 01011110 Circumflex Accent ^
95 5F 137 01011111 Low Line _
96 60 140 01100000 Grave Accent `
97 61 141 01100001 Latin Small Letter A a
98 62 142 01100010 Latin Small Letter B b
99 63 143 01100011 Latin Small Letter C c
100 64 144 01100100 Latin Small Letter D d
101 65 145 01100101 Latin Small Letter E e
102 66 146 01100110 Latin Small Letter F f
103 67 147 01100111 Latin Small Letter G g
104 68 150 01101000 Latin Small Letter H h
105 69 151 01101001 Latin Small Letter I i
106 6A 152 01101010 Latin Small Letter J j
107 6B 153 01101011 Latin Small Letter K k
108 6C 154 01101100 Latin Small Letter L l
109 6D 155 01101101 Latin Small Letter M m
110 6E 156 01101110 Latin Small Letter N n
111 6F 157 01101111 Latin Small Letter O o
112 70 160 01110000 Latin Small Letter P p
113 71 161 01110001 Latin Small Letter Q q
114 72 162 01110010 Latin Small Letter R r
115 73 163 01110011 Latin Small Letter S s
116 74 164 01110100 Latin Small Letter T t
117 75 165 01110101 Latin Small Letter U u
118 76 166 01110110 Latin Small Letter V v
119 77 167 01110111 Latin Small Letter W w
120 78 170 01111000 Latin Small Letter X x
121 79 171 01111001 Latin Small Letter Y y
122 7A 172 01111010 Latin Small Letter Z z
123 7B 173 01111011 Left Curly Bracket {
124 7C 174 01111100 Vertical Line |
125 7D 175 01111101 Right Curly Bracket }
126 7E 176 01111110 Tilde ~
127 7F 177 01111111 DEL Delete ^?  Именно его на большинстве терминалов отправляет клавиша Backspace. Название пришло от перфоленты: пробиты все семь отверстий.

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

А что насчёт 128–255?

ASCII вообще не определяет диапазон 128–255. «Расширенный ASCII» — не название какого-либо стандарта, а расплывчатое обозначение целого семейства восьмибитных кодировок. Один и тот же байт в каждой из них означает другой символ:

Байт ISO-8859-1 Windows-1252 CP437 CP866
0x80 U+0080 Управляющий символ C1 (невидимый) Ç А
0x93 U+0093 Управляющий символ C1 (невидимый) ô У
0xB0 ° °
0xE9 é é Θ щ
0xFF ÿ ÿ U+00A0 U+00A0
Классификация символов во время тестов сверяется с собственными категориями Unicode, а отображение Windows-1252 проверяется побайтово по декодеру платформы. — Инженерная команда Go-Tools · Sep 2, 2026

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

Краткая справка

Какой код ASCII у буквы A?

A = 65 Заглавная `A` — это 65 в десятичном, `0x41` в шестнадцатеричном, `101` в восьмеричном и `01000001` в двоичном. Строчная `a` — 97, ровно на 32 больше, то есть на один бит.

Сколько символов в ASCII?

128 128, с номерами от 0 до 127. Это 32 управляющих символа, 95 графических символов вместе с пробелом и DEL.

Что такое ASCII 0?

0 = NUL NUL, нулевой символ. Он завершает строки в C, разделяет имена файлов в `find -print0` и заставляет `grep` считать файл двоичным.

Какой байт означает перевод строки?

LF = 10, CR = 13 Перевод строки — это 10 (`0x0A`, `\n`). Возврат каретки — 13 (`0x0D`, `\r`). Окончания строк Windows состоят из обоих, сначала CR.

Что такое ASCII?

ASCII — семибитная кодировка символов: 128 кодовых позиций с номерами от 0 до 127, и не более того. Впервые она была опубликована как ASA X3.4-1963, действующая редакция — ANSI X3.4-1986; RFC 20 описывает её применение в интернете и в 2015 году был повышен до интернет-стандарта STD 80. В первой версии строчных букв не было вовсе — они появились в редакции 1967 года. Всё, что выше 127, принадлежит какой-то другой кодировке, но не ASCII.

0x00-0x1F   32 C0 control characters
0x20         1 space (a graphic character, not a control)
0x21-0x7E   94 printable graphic characters
0x7F         1 DEL (a control character, but not part of C0)
            ---
            128 total

Что даёт эта таблица

Четыре основания рядом

Десятичное, шестнадцатеричное, восьмеричное и восьмибитное двоичное представление для каждой из 128 кодовых позиций — с ведущим нулём, который напоминает, что ASCII на самом деле семибитный.

Escape-последовательности по языкам

Столбец \0 \a \b \t \n \v \f \r плюс различия, которые действительно ломают сборку: в JavaScript нет \a, в Java нет ни \a, ни \v, а \e — расширение GNU, а не ISO C.

Caret-запись

Столбец от ^@ до ^? и одно правило, покрывающее все 33 управляющих символа: XOR байта с 0x40. Не прибавить, не вычесть — именно XOR.

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

Не просто «SOH — начало заголовка», а то, что протокол FIX использует его как разделитель полей, что 0x1D — невидимый разделитель, который выдаёт сканер штрихкодов, и что зависший от Ctrl+S терминал — это XOFF.

Конвертер, который отказывается угадывать

Основание выбираете вы. Байты больше 127 отклоняются с пометкой о том, как они прочитаются в Windows-1252 и ISO-8859-1, а не выдаются за ASCII.

Управляющие символы остаются видимыми

У NUL, TAB и CR нет начертания, поэтому предпросмотр показывает их символами Unicode Control Pictures. Кнопка копирования по-прежнему отдаёт настоящие байты.

Связанные кодировки

ISO/IEC 8859-1 (Latin-1)

8 бит, один байт

Сохраняет 0–127 идентичными ASCII и определяет 96 графических символов от 0xA0 до 0xFF. Диапазон 0x800x9F отдан невидимым управляющим символам C1.

Windows-1252

8 бит, один байт

Надмножество ISO-8859-1, единственное отличие которого — диапазон 0x800x9F: там размещены 27 печатаемых символов, а 5 позиций оставлены неопределёнными. Браузеры используют её всякий раз, когда страница объявляет ISO-8859-1.

CP437

8 бит, один байт

Исходная кодовая страница IBM PC. Её верхняя половина — буквы с диакритикой, греческие буквы и символы псевдографики; именно эти таблицы вы видите в статьях, обещающих 256 символов ASCII.

UTF-8

Переменная длина, 1–4 байта

Кодирует весь Unicode, сохраняя каждый байт ASCII побайтово неизменным. Обратно совместима с US-ASCII, но ни с одной из восьмибитных кодовых страниц выше.

Примеры

Текст в десятичные коды

Hello
72 101 108 108 111

Каждый символ становится своей десятичной кодовой позицией. Заглавные буквы занимают 65–90, строчные — 97–122, ровно на 32 больше; именно поэтому переключение пятого бита меняет регистр.

Одни и те же коды в двух основаниях

41 42 43
шестнадцатеричное -> ABC     десятичное -> )*+

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

Управляющие символы переживают путь туда и обратно

9 10 13 0
TAB, LF, CR, NUL

В поле вывода они невидимы, поэтому строка предпросмотра показывает их символами Unicode Control Pictures. Кнопка копирования всё равно копирует настоящие байты, а не заменители.

Байты больше 127 отклоняются с объяснением

233
Вне диапазона ASCII (0-127)

233 — не код ASCII. Инструмент сообщит, что и в Windows-1252, и в ISO-8859-1 этот байт читается как é, но не станет выдавать его за ASCII.

Как пользоваться

  1. 1

    Выберите основание

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

  2. 2

    Печатайте в любом из полей

    В одном поле текст, в другом коды. В каком бы вы ни печатали, второе обновляется само.

  3. 3

    Читайте предупреждения

    Символы вне диапазона 0–127 перечисляются вместе с кодовой позицией и байтами UTF-8, а не отбрасываются молча и не превращаются в знаки вопроса.

  4. 4

    Пользуйтесь таблицей как справочником

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

Ошибки, о которых стоит знать

Утверждать, что в ASCII 256 символов

ASCII заканчивается на 127. Всё, что дальше, принадлежит конкретной восьмибитной кодовой странице, которую нужно назвать. Python скажет вам об этом прямо, если попросить его закодировать символ с диакритикой в ASCII.

✗ Неверно
'cafe\u00e9'.encode('ascii')  # UnicodeEncodeError: ordinal not in range(128)
✓ Верно
'cafe\u00e9'.encode('utf-8')   # b'cafe\xc3\xa9'

Считать, что во всех языках одинаковые escape-последовательности

В JavaScript нет escape-последовательности \a. Вместо ошибки он отбрасывает обратную косую черту и оставляет вам букву, и строгий режим тут не помогает.

✗ Неверно
"\a".charCodeAt(0)   // 97 - that is the letter 'a', not BEL
✓ Верно
"\x07".charCodeAt(0) // 7 - BEL

Объяснять caret-запись как сложение

Прибавление 0x40 работает для диапазона C0 и ломается на DEL, где пришлось бы вычитать. XOR — единственное правило, покрывающее все 33 символа.

✗ Неверно
caret = chr(code + 0x40)   # 0x7F + 0x40 overflows past the table
✓ Верно
caret = chr(code ^ 0x40)   # 0x00 -> @, 0x1B -> [, 0x7F -> ?

Когда это нужно

Чтение шестнадцатеричного дампа или трассировки протокола
У вас есть байты, и нужно понять, какие из них печатаемые, какие разделители, а какие — управляющие коды, которые терминал тихо исполняет.
Разбор файла, который ведёт себя странно
Лишний CR в конце каждой строки, NUL, из-за которого grep считает файл двоичным, или пробелы там, где Makefile требовал настоящий TAB.
Написание парсера или валидатора
Решить, какие диапазоны байтов принимать, и правильно расставить границы: 0x210x7E для графических символов, 0x20 для пробела, 0x7F для DEL.
Объяснение ошибки кодировки
Показать коллеге, почему один и тот же байт отображается тремя разными символами в зависимости от того, какую кодовую страницу предположил читающий.

Технические детали

ASCII, Unicode и UTF-8
Первые 128 кодовых позиций Unicode, от U+0000 до U+007F, соответствуют ASCII один к одному. UTF-8 кодирует их одиночными байтами 0x000x7F со сброшенным старшим битом. Настоящую нагрузку несёт третье свойство: у каждого байта многобайтовой последовательности UTF-8 старший бит установлен, поэтому байт из диапазона 0–127 никогда не может оказаться частью не-ASCII символа. Именно на этом держится безопасность побайтового поиска /, \0 или \n в UTF-8.
Восьмой бит
ASCII определяет семибитный код; хранение одного символа в восьмибитном байте — это соглашение о хранении, и исторически свободный бит часто служил битом чётности. Почтовые транспорты, гарантировавшие прозрачность только для семи бит, — причина существования Base64 и quoted-printable.
Почему алфавит разложен именно так
Цифры 09 занимают 0x300x39, поэтому младшая тетрада и есть само значение. A — это 0x41, а a0x61: разница в один бит, поэтому c | 0x20 переводит в нижний регистр, а c & 0xDF — в верхний. Но только для букв: '_' | 0x20 даёт 0x7F, то есть DEL, а '[' | 0x20 даёт {.
Национальные варианты и проблема 0x5C
ISO/IEC 646 разрешал заменять 12 кодовых позиций по национальному признаку. Японский JIS X 0201 поставил на 0x5C знак иены, корейский KS X 1003 — знак воны; поэтому японская Windows показывает пути со знаком иены, хотя байт всё тот же 0x5C. В Shift_JIS хуже: второй байт двухбайтового символа сам может оказаться 0x5C. Символы 表, ソ, 十, 能, 構 и 暴 заканчиваются именно им, поэтому наивная обработка обратной косой черты разрубает их пополам.

Как делать правильно

Всегда называйте кодовую страницу
«Расширенный ASCII» не говорит читателю ничего. Скажите Windows-1252, или ISO-8859-1, или CP437 — один и тот же байт в каждой из них означает другой символ.
Пишите US-ASCII, когда имеете в виду именно её
Это зарегистрированное в IANA название. charset=ascii — не оно, а charset=ISO-8859-1 в браузере фактически даст вам Windows-1252, потому что стандарт кодировок WHATWG сопоставляет эту метку именно так.
Никогда не угадывайте основание за пользователя
Если ваш инструмент или парсер молча решит, что 41 — шестнадцатеричное, он будет ошибаться примерно в половине случаев, а сбой останется незаметным.
Перебирайте кодовые позиции, а не единицы UTF-16
У строки "A" плюс скрипичный ключ плюс китайский иероглиф .length равен 4, хотя символов всего три. Используйте [...str] или codePointAt, иначе ваше сообщение «неподдерживаемый символ» доложит об эмодзи как о двух сломанных половинках.

Частые вопросы

Сколько символов в ASCII?
128. ASCII — семибитная кодировка, поэтому она определяет ровно кодовые позиции с 0 по 127: 32 управляющих символа C0, 95 графических символов вместе с пробелом и DEL. Статьи с заголовком «полная таблица ASCII (256 символов)» показывают вам конкретную восьмибитную кодовую страницу — обычно CP437 или Windows-1252, — а вовсе не ASCII.
Что такое расширенный ASCII?
Строго говоря, ничто. «Расширенный ASCII» — не название какого-либо стандарта, а расплывчатое обозначение целого семейства восьмибитных кодировок, которые сохраняют диапазон 0–127 неизменным и определяют 128–255 каждая по-своему. Байт 0xE9 — это é в ISO-8859-1, греческая буква Θ в CP437 и буква кириллицы в CP866. Без указания кодовой страницы у вопроса нет ответа.
Windows-1252 — это то же самое, что ISO-8859-1?
От 0xA0 до 0xFF они полностью совпадают, а от 0x80 до 0x9F полностью различаются. ISO-8859-1 отдаёт этот диапазон невидимым управляющим символам C1; Windows-1252 размещает там 27 печатаемых символов — знак евро, типографские кавычки, короткое и длинное тире — и оставляет 5 позиций неопределёнными. Именно поэтому типографская кавычка, скопированная из текстового редактора, превращается в невидимый управляющий символ, пройдя через то, что действительно является ISO-8859-1.
DEL — управляющий символ?
Да. Unicode относит U+007F к категории Cc, а iscntrl(127) в C возвращает истину. Просто он не входит в набор C0, который строго ограничен диапазоном 0x000x1F. В конце таблицы он оказался из-за перфоленты: 0x7F — это семь пробитых отверстий, а пробитое отверстие обратно не заклеишь, поэтому «пробить все» было единственным способом пометить символ как удалённый.
Пробел — управляющий символ?
Нет, и множество таблиц ASCII здесь ошибаются. Unicode относит пробел (0x20) к категории Zs, разделитель пробельного типа, а это графический символ. Управляющие символы — только 0x000x1F и 0x7F.
Почему двоичный столбец показывает 8 бит, если ASCII семибитный?
Потому что байт — это единица, в которой всё фактически хранится, а старший бит просто всегда равен нулю. Это дополнение не косметика: именно потому, что ASCII никогда не использует восьмой бит, UTF-8 смог занять его под флаг «это часть многобайтовой последовательности», что и делает UTF-8 обратно совместимым с ASCII.
Все ли языки записывают управляющие символы одинаково?
Нет, и различия кусаются. \a (звонок) стандартен в C и Python, но в JavaScript такой escape-последовательности нет'\a' молча превращается в букву a, причём без ошибки даже в строгом режиме. Java отвергает и \a, и \v. Go отвергает \0, потому что восьмеричный escape там обязан состоять ровно из трёх цифр, так что пишут \000. А \e для ESC — расширение GNU, а не стандарт ISO C.
Что означает ^M в git diff или в vim?
Это возврат каретки, байт 13. Caret-запись получает символ, применяя XOR значения управляющего символа с 0x40: так CR (0x0D) становится ^M, а ESC (0x1B) — ^[. Если ^M стоит в конце каждой строки, у файла окончания строк Windows CRLF; а надпись bad interpreter: /bin/bash^M означает, что их подхватил скрипт оболочки.

Похожие инструменты

Все инструменты →

Base64 декодер и кодировщик

Кодирование и форматирование

Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.

Конвертер Base64 в изображение

Кодирование и форматирование

Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.

Конвертер CSV в JSON

Кодирование и форматирование

Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.

Конвертер .env в JSON

Кодирование и форматирование

Вставьте файл .env — получите JSON мгновенно. Пароли БД, API-ключи и токены не покидают браузер: 100% приватно, без загрузки, парсер dotenv.

Бесплатный HTML-декодировщик сущностей — unescape HTML

Кодирование и форматирование

Декодируйте HTML-сущности и снимайте экранирование HTML онлайн — бесплатно, без регистрации, 100% в браузере. Преобразует именованные, десятичные и hex-ссылки обратно в символы; данные не загружаются.

Бесплатный HTML-кодировщик сущностей — экранирование HTML

Кодирование и форматирование

Кодируйте HTML-сущности и экранируйте спецсимволы (< > & " ') онлайн — бесплатно, без регистрации, 100% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.