Как передать одиночные шестнадцатеричные значения последовательных данных в PuTTY с помощью кода Alt?

Я пытаюсь отправить определенное шестнадцатеричное значение в последовательный COM-порт с помощью PuTTY. В частности, я хочу отправить шестнадцатеричные коды 9C, B6, FC и 8B. Я просмотрел коды Alt для них, и они равны соответственно 156, 182, 252 и 139.

Тем не менее, всякий раз, когда я ввожу коды Alt , предыдущее шестнадцатеричное значение C2 отправляется до 9C, B6 и 8B, поэтому отправляемые значения являются C2 9C, ​​C2 B6 и C2 8B. Значение для FC изменяется на C3 FC.

Почему эти значения помещаются перед шестнадцатеричным значением и почему вообще изменяется FC? Для меня кажется, что есть проблема с внутренним преобразованием кода Alt в hex. Есть ли способ напрямую вводить шестнадцатеричные значения без использования кодов Alt в PuTTY?

  • Как очистить COM-порты?
  • Я ищу программное обеспечение для мониторинга последовательного порта
  • Настройка виртуального Com-порта?
  • Как я могу контролировать виртуальный последовательный порт в Windows 7?
  • Как получить цветовые вариации
  • Есть ли бесплатный способ контролировать последовательный порт в Windows 7 x64?
  • One Solution collect form web for “Как передать одиночные шестнадцатеричные значения последовательных данных в PuTTY с помощью кода Alt?”

    То, что вы видите, это просто обычное преобразование набора символов.

    Что касается 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+00B60000|0000 10|110110[110]00010 [10]110110C2 B6

    • U+00FC0000|0000 11|111100[110]00011 [10]111100C3 BC

    • U+20AC0010|0000 10|101100[1110]0010 [10]000010 [10]101100E2 82 AC

    • Википедия имеет его с цветами

    В качестве другого примера, буква ė используется для байта E6 в кодировке Windows-1257, но в Юникоде это U + 0117, что соответствует байтам C4 97 в UTF-8. Эти последовательности имеют переменную длину, до 4 байтов для больших позиций.

    Если вы абсолютно должны использовать PuTTY для отправки двоичных данных, откройте экран настроек «Окно → Перевод» и выберите CP437, ISO-8859-1 или Windows-1252 в качестве «Удаленного набора символов». (Сохраните это в отдельном сеансе, не сохраняйте его как глобальное значение по умолчанию, так как оно нарушит обычные соединения SSH.)

    Давайте будем гением компьютера.