在 Ubuntu 16.10 下使用终端 ssh 登录远程服务器,然后使用服务器上的 VIM 打开代码文件,发现文件中的中文都是乱码。而使用 Mac 的自带终端进行同样的操作,看到的中文显示就是正常的。遂怀疑 Ubuntu 本地的配置有问题。
问题的原因是,本地的 locale 与服务器上的 locale 不匹配。参考链接里提供了四种解决方案,而我觉得 Stop forwarding locale from the client 这种解决方案最简单。
解决方案:
即,修改 Ubuntu 本地的 /etc/ssh/ssh_config 文件,注释掉
SendEnv LANG LC_*
这一行。然后重新 ssh 服务器,会发现中文已经可以正常显示了。
参考:ssh - Locale variables have no effect in remote shell (perl: warning: Setting locale failed.) - Ask Ubuntu