如何防止 Windows 上的 UNIX 控制台输出乱码?

如何防止 Windows 上的 UNIX 控制台输出乱码?

我发现当从 Windows 通过 SSH 进入 UNIX VM 时,控制台几乎无法使用。

似乎有两个主要问题:

  1. 转义字符(颜色和光标键)
  2. 覆盖文本(主要在 Nano 中,但也在终端中)

第一个问题似乎可以通过使用 ConEmu 之类的工具来解决。

但第二个问题我就是解决不了。在任何地方使用删除键、终端中的命令历史记录或 Nano 中的向上/向下或向上/向下翻页都会覆盖大片文本,结果只是一堆乱码,包含新旧字符。

我发现更新屏幕的唯一方法是使用 CTRL+L 切换长行,但这不是一个真正的解决方案。

这发生在 cmd.exe、Git bash 以及我尝试过的其他几个程序中。正常、理智的人如何应对这种情况(除了使用 OSX/Linux!)?

干杯,戴夫

答案1

使用 Putty 或 NoMachine,从未出现过上述任何问题。

答案2

感谢其余的评论,我选择了 Putty 路线并取得成功。

尽管实际登录比较麻烦,但它解决了我上面概述的所有问题。

我正在回答我自己的问题,因为我的用例是针对 Laravel 的 Homestead,所以我认为分享我如何做到这一点会很有用。

编辑:我把所有这些信息以及其他一些信息汇总到一篇博客文章中,概述了如何使用 ConEmu 和 OpenSSH 来解决这两个问题,同时为您提供比单独使用 PuTTY 更多的功能:http://davestewart.io/blog/fix-windows-broken-ssh-console

Homestead 基于 Vagrant,我在这里找到了有关如何将 Putty 与 Vagrant 结合使用的信息:

https://github.com/Varying-Vagrant-Vagrants/VVV/wiki/Connect-to-Your-Vagrant-Virtual-Machine-with-PuTTY

从内部测试康德它给了我线索,ssh.exe问题出在 Windows 本身,所以我只是添加了 Putty 作为一个新的控制台(尽管你可以单独运行它),并且在获得对 VM 的访问权限后,我使用 Nano 进行了测试,它“刚刚起作用”:

在此处输入图片描述

我还发现我可以从命令行使用 Git 的 OpenSSH 客户端进行 SSH 连接。

cd <open ssh folder> ssh [email protected] -p 2222

输入“yes”,然后输入“vagrant”作为密码。瞧!Nano 开始工作了。

如果要保存主机,请先以管理员身份运行命令提示符。

(如果这对于所有系统管理员来说都是显而易见的,我深表歉意!)

相关内容