所以当我在 Ubuntu 16.04 的终端中使用 vim 编写一些 C 代码时就发生了这种情况。
每次我尝试输入右括号时,终端窗口都会显示“7”。此外,按“7”键会输入向下箭头字符(我认为是 Unicode 字符)。
例子:
fprintf(stdout, "%s\n", argv[17);
奇怪的是,按下 Shift-] 会按预期显示“}”,而其他数字键会正确显示相应的数字。
我认为这是 vim 的问题,于是我尝试在 emacs 中打开该文件,看到了同样的情况。
当我尝试使用 gcc 编译文件时,编译器输出也出现了同样奇怪的编码问题。
我尝试通过 ssh 连接到远程服务器,但发生了同样的事情,所以我很确定问题出在我的终端显示字符的方式上。
发生了什么事?我该如何解决?
编辑:感谢使用命令的提示,问题已解决reset
。重启终端后,一切正常。我一直在处理二进制数据,这似乎是导致此问题的原因。
答案1
感谢用户 brndn2k 发布的链接,我得以解决这个问题。
我一直在处理二进制数据,这一定是罪魁祸首,正如链接中提到的那样。
使用该reset
命令并重新启动我的终端将使终端恢复正常字符编码。