gpt4 book ai didi

java - 从 Java 中的外部进程读取时出现乱码

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:19 26 4
gpt4 key购买 nike

我正在使用 Java 中的 ProcessBuilder 类启动与 Cygwin 捆绑在一起的 SSH 实用程序。一切正常。我通过 SSH 连接到 Linux 服务器,可以运行命令并读取输出。

但是,无论何时返回输出,它只会在登录服务器并运行命令(例如目录列表 ls)后发生,返回如下内容:

InputStream: root@myserver:/scripts/common# ls 
InputStream: [00m[00mA1-4.yaml[00m [01;32mscip-1.2.0.linux.x86_64.gnu.opt.qso[00m
InputStream: [00madditional_files.txt[00m [01;32mscip-1.2.0.linux.x86_64.gnu.opt.spx[00m

据我所知,它只发生在文件列表命令中。例如,当我运行时间等其他命令时,它显示正常输出。

您能否建议将这些随机字符附加到文件名中的是什么?

我什至尝试过使用 UTF8 编码,但没有任何改变。当我使用命令行直接登录时,我看不到这些结果。但是,cmdline 以彩色值显示文件名。是不是加了一些非ASCII的信息?

最佳答案

使用命令 ls --color=none 解决了这个问题。

发生这种情况是因为默认情况下 ls 命令返回的文件名附加了不同的颜色代码值。 This link gives more information .

下图描述了lsls --color=none的区别:

enter image description here

关于java - 从 Java 中的外部进程读取时出现乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com