Java 为转义telnet写入unicode字符

Java 为转义telnet写入unicode字符,java,sockets,unicode,special-characters,telnet,Java,Sockets,Unicode,Special Characters,Telnet,我正在编写一个java代码,用于在基于telnet的设备中连接和执行命令。 当我登录时,会出现如下消息: Trying 10.11.115.160... Connected to 10.11.115.160. Escape character is '^]'. telnetClient.execute("^]"); 问题是,当我想要注销时,我不知道如何使用一个简单的字符串编写这个字符“^]”,如下所示: Trying 10.11.115.160... Connected to 10.11.1

我正在编写一个java代码,用于在基于telnet的设备中连接和执行命令。 当我登录时,会出现如下消息:

Trying 10.11.115.160...
Connected to 10.11.115.160.
Escape character is '^]'.
telnetClient.execute("^]");
问题是,当我想要注销时,我不知道如何使用一个简单的字符串编写这个字符“^]”,如下所示:

Trying 10.11.115.160...
Connected to 10.11.115.160.
Escape character is '^]'.
telnetClient.execute("^]");

在linux终端中,它使用ctrl+]工作。 我在unicode表中找不到这个字符


有人知道吗?提前感谢

该字符是组分隔符,或\u001d

^]源于一种对不可打印字符进行编码以进行打印的旧方法。带有ASCII值的字符是的,这远远早于ASCII在32以下仍然相关的时候,使用^字符和另一个ASCII字符作为值进行编码,以@开头的顺序进行编码。因此NUL 0变为^@,字符号1变为^A,2变为^B等。GS的值恰好为29,ASCII表中@之后的第29个字符为]


编辑:删除了禁运误算,该字符是组分隔符,或\u001d

^]源于一种对不可打印字符进行编码以进行打印的旧方法。带有ASCII值的字符是的,这远远早于ASCII在32以下仍然相关的时候,使用^字符和另一个ASCII字符作为值进行编码,以@开头的顺序进行编码。因此NUL 0变为^@,字符号1变为^A,2变为^B等。GS的值恰好为29,ASCII表中@之后的第29个字符为]

编辑:删除了禁运误算,

Ctrl+]是U+001D信息分隔符三,所以它是\u001d。通过运行cat | hextump并输入Ctrl+]、Ctrl+D,可以轻松检查

U+001B ESCAPE是Ctrl+[。

Ctrl+]是U+001D信息分隔符三,所以它是\u001d。通过运行cat | hextump并输入Ctrl+]、Ctrl+D,可以轻松检查

U+001B转义为Ctrl+[