То, что вы видите, - это обычное преобразование текстового набора символов.
Что касается PuTTY, вы печатаете (и читаете) текст, а не необработанные двоичные данные, поэтому он должен преобразовывать текст в байты в любом настроенном наборе символов перед его отправкой по проводам.
Другими словами, когда вы набираете Alt+1 8 2, PuTTY получает соответствующий символ из устаревшей кодировки "OEM", для которой настроена система. (Нажатие Alt+0 1 8 2 выберет из устаревшего набора символов "ANSI" (Windows-125x).) В этом случае, персонаж ¶
, крылатка.
Теперь PuTTY должен преобразовать этот символ в байты. В более ранних версиях PuTTY по умолчанию использовался тот же устаревший набор символов Windows-125x, который используется самой ОС, например, Windows-1257, поэтому раньше преобразование было почти прямым: ввод 1 8 2, получение десятичного байта 182 (0xB6 hex).
Однако, поскольку PuTTY обычно подключается к серверам Linux или BSD, подавляющее большинство из которых перешли на UTF-8 по умолчанию, последний выпуск PuTTY также начал использовать UTF-8 по умолчанию. UTF-8 является кодировкой мегасимвола Unicode, который имеет ¶
в позиции U+00B6, и в основном это просто совпадение, что UTF-8 кодирует это значение как байты C2 B6
:
U+00B6
→ 0000|0000 10|110110
→ [110]00010 [10]110110
→ C2 B6
U+00FC
→ 0000|0000 11|111100
→ [110]00011 [10]111100
→ C3 BC
U+20AC
→ 0010|0000 10|101100
→ [1110]0010 [10]000010 [10]101100
→ E2 82 AC
В Википедии есть это с цветами
В качестве другого примера, буква ė
раньше была байтом E6
в кодировке Windows-1257, но в Unicode это U+0117, что соответствует байтам C4 97
в UTF-8. Эти последовательности имеют переменную длину, до 4 байтов для больших позиций.
Если вам абсолютно необходимо использовать PuTTY для отправки двоичных данных, откройте экран настроек «Окно → Перевод» и выберите в качестве "Удаленного набора символов" CP437, ISO-8859-1 или Windows-1252. (Сохраните это в отдельном сеансе; не сохраняйте это как глобальное значение по умолчанию, потому что это нарушит обычные соединения SSH.)