Перевод текста в десятичные коды и обратно

Превращайте каждый байт текста в десятичное число от 0 до 255 (для английского текста это привычные коды ASCII) или переводите список десятичных значений обратно в текст.

Работает полностью в браузере. Данные никуда не загружаются.

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

  1. Выберите «Кодировать», чтобы превратить текст в десятичные числа, или «Декодировать», чтобы получить текст из чисел.
  2. Введите или вставьте входные данные либо откройте файл. Результат обновляется по мере ввода.
  3. Выберите разделитель для чисел: «Пробел», «Запятая» или «Перевод строки».
  4. Скопируйте числа или скачайте их в виде файла.

Десятичные значения байтов и коды ASCII

Каждый символ хранится в компьютере в виде одного или нескольких байтов, а байт — это просто число от 0 до 255. Этот инструмент записывает каждое такое число в обычной десятичной системе. Для английского текста это привычные коды ASCII: заглавные латинские буквы занимают диапазон от 65 до 90, строчные — от 97 до 122, цифры от 0 до 9 — от 48 до 57, а пробел имеет код 32. Управляющие символы расположены ниже 32, например 10 — перевод строки, а 13 — возврат каретки.

Результат совпадает со списком, который возвращает ord() в Python или который получается при чтении Uint8Array в JavaScript. Так удобно находить в строке невидимые символы, окончания строк или метку порядка байтов (BOM).

Одно число на байт, а не одно большое число

Преобразование выполняется побайтово: слово из двух букв превращается в два числа, а не в одно целое. Значения больше 127 никогда не встречаются в тексте ASCII. В UTF-8 они идут сериями от двух до четырёх байтов, которые вместе образуют один символ, поэтому буква с диакритикой или китайский иероглиф дают несколько чисел. Чтобы получить одно значение на символ для западноевропейского текста, выберите ISO-8859-1, где значение каждого байта совпадает с кодовой точкой Unicode символа, или Windows-1252.

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

Десятичные значения байтов в программах

# Python
list('Hi'.encode())                  # [72, 105]
bytes([72, 105]).decode()            # 'Hi'

// JavaScript
[...new TextEncoder().encode('Hi')]                   // [72, 105]
new TextDecoder().decode(new Uint8Array([72, 105]))   // 'Hi'

Спецификация

Алфавит0-9
Размер результатаОт 1 до 3 цифр на байт плюс разделители
ДополнениеНет
СтандартДесятичные значения байтов
Учёт регистраНет

Примеры

Исходные данные (UTF-8)Результат
Hello, World!72 101 108 108 111 44 32 87 111 114 108 100 33
Base64.is66 97 115 101 54 52 46 105 115
你好228 189 160 229 165 189

Часто задаваемые вопросы

Какой десятичный код ASCII у буквы A?

Заглавная A имеет код 65, а строчная a — 97, и в ASCII, и в UTF-8. Каждая следующая буква на единицу больше, поэтому Z — это 90, а z — 122.

Можно ли декодировать десятичные числа без разделителей?

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

Почему числа больше 255 вызывают ошибку?

Байт хранит значения от 0 до 255. Большие числа, например кодовая точка Unicode 8364 знака евро, не являются значениями байтов. Введите сам символ и закодируйте его, чтобы увидеть его байты, например в UTF-8.

Почему один символ превращается в несколько чисел?

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