【问题标题】:"ASCII" codes for arrow up, down, left and right向上、向下、向左和向右箭头的“ASCII”代码
【发布时间】:2014-06-26 22:54:19
【问题描述】:

我正在编写一个从 Javascript 读取输入并将这些读数发送到 bash 的程序。

我可以成功运行许多操作,例如“A-Z”字母、TAB、CTRL+C 等。但我意识到我无法正确发送以 bash 向上箭头。

如果我从 Javascript 读取 ascii 代码,我会得到以下解释 Binding arrow keys in JS/jQuery

37 - left
38 - up
39 - right
40 - down

但是,当我将箭头向上发送到终端时,十进制键码 38,我写了一个 & 符号(如按照 ascii 表 http://www.asciitable.com/

所以,我的问题是:我必须从 Java 向 bash 发送什么代码来告诉 bash “向上箭头键”?

PD_ 我意识到它可能会因操作系统而异,并且此代码可能不会被视为 ascii 代码,正如这篇文章所建议的那样:enter link description here

编辑 我使用以下代码从 Java 写入 bash:

JSch jsch = new JSch();
[...]
Channel channel = session.openChannel("shell");
OutputStream out = channel.getOutputStream();
out.write(asciiDecimalCode); // send characters

提前致谢。

【问题讨论】:

  • 您在这里提到了 Java、Javascript 和 bash。你在做什么?
  • 你为什么要向 bash 发送向上箭头? java 程序不是用户。
  • 从 JavaScript 读取字符并使用 Java 将其发送到 bash。在上下文中是有道理的。
  • 您拥有的这些代码不是 ASCII 代码,它们只是键盘的键映射代码,可能因制造商和本地化而异。
  • 正确,我正在创建一个网络终端。这个程序是出于好奇比什么都重要。它是一个 Javascript 终端。 (我不明白负面的观点)。我编辑了主要问题并添加了我用来编写 bash 的代码。它只是通过使用 JSch 的 ChannelShell 将十进制值写入 OutputStream。

标签: java jquery bash ascii


【解决方案1】:

“向上箭头”的转义序列是 "\u001b[A"\u001bESC (Escape) 的代码。

这意味着当你在 JavaScript 中只有一个关键代码时,你需要向 BASH 写入 3 个字节才能达到预期的效果。

您可以通过键入 Ctrl+VUp 亲自查看。

Ctrl+V 告诉 bash:“不要试图解释下一个输入;只需逐字插入”。

相关:

【讨论】:

  • 嗯,当我在 Java 中尝试时,我得到了error: illegal escape character
  • 当然。 Java 仅支持 Unicode 转义序列。固定。
  • 如果有人来自 Swift,则字符串为 "\u{1b}[A"
猜你喜欢
  • 2011-06-21
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 2018-10-23
  • 2018-06-14
  • 1970-01-01
相关资源
最近更新 更多