написать символ юникода для выхода из телнета - PullRequest
1 голос
/ 21 февраля 2011

Я пишу код Java, который подключает и выполняет команды на оборудовании, основанном на telnet. когда я вхожу, появляется сообщение вроде этого:

Trying 10.11.115.160...
Connected to 10.11.115.160.
Escape character is '^]'.

проблема в том, что когда я хочу выйти из системы, не знаю, как написать этот символ '^]', используя простую строку, например:

telnetClient.execute("^]");

или

telnetClient.execute("\uXXXX");

в терминале Linux, он работает с помощью Ctrl +]. я не нашел этот символ в таблице Unicode.

кто-нибудь знает? заранее спасибо

Ответы [ 2 ]

6 голосов
/ 21 февраля 2011

Ctrl + ] равно U+001D INFORMATION SEPARATOR THREE, поэтому \u001d.Это можно легко проверить, запустив cat | hexdump и введя Ctrl + ], Ctrl + D.

U+001B ESCAPE - это Ctrl + [.

4 голосов
/ 21 февраля 2011

Этот символ является «разделителем группы», или \u001d.

^] происходит от несколько старого способа кодирования непечатного символа для печати.Символы со значением ASCII (да, это очень далеко от времени, когда ASCII все еще был актуален) ниже 32 были закодированы с использованием символа ^ и другого символа ASCII для значения, взятого в последовательности, начинающейся с @.Поэтому NUL (0) становится ^@, символ номер 1 становится ^A, 2 становится ^B и т. Д. GS имеет значение 29, а 29-й символ после @ в таблице ASCII равен ].

Редактировать: Убран смущающий просчет ¬__¬

...