用 Mac OS X 自帶的 SSH 登陸 Linux 後出現中文亂碼,如何解決?


可以試著改變終端的編碼為UTF8


問題:

伺服器是ubuntu,用Mac的iterm2 ssh連上去,終端顯示中文亂碼,也不能輸入中文,然而本地終端可以顯示和輸入。

解決方法:

這種情況一般是終端和伺服器的字符集不匹配,MacOSX下默認的是utf8字符集。

輸入locale可以查看字元編碼設置情況,而我的對應值是空的。

因為我在本地和伺服器都用zsh替代了bash,而且使用了oh-my-zsh,而默認的.zshrc沒有設置為utf-8編碼,所以本地和伺服器端都要在.zshrc設置,步驟如下,bash對應.bash_profile或.bashrc文件。

1.在終端下輸入

vim ~/.zshrc

或者使用其他你喜歡的編輯器編輯~/.zshrc文件

&

2.在文件內容末端添加:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

接著重啟一下終端,或者輸入source ~/.zshrc使設置生效。

設置成功的話,在本地和登錄到伺服器輸入locale回車會顯示下面內容。

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

這時,中文輸入和顯示都正常了。

來自我博客Mac用iTerm2連接到Linux上,不能輸入中文


編輯 /etc/ssh_config,注釋此行「 SendEnv LANG LC_*」即可。


直接 LANG=en 先吧


你的終端和你伺服器的字符集不匹配,MacOSX下默認的是utf8字符集,看看你伺服器的字符集吧,很多裝伺服器的兄弟喜歡設置中文字符集。


暈倒,每次升級都要搞一次這個

/etc/ssh/ssh_config

先sudo chmod 777,要不然不讓你改

然後vi進去之後,ctrl+g到最後一行

把 SendEnv LANG LC_*這一行最前面加上#注釋掉

好煩


使用locale命令查看當前的編碼環境

在終端的偏好設置-&>描述文件-&>高級-&>多語言環境 選擇你需要的語言環境

設置完成後 重啟終端就可以了


沒用過mac,不過通常都是終端的問題。


推薦閱讀:

mac 怎麼登錄到 linux 伺服器並傳輸文件?

TAG:macOS | Linux | SSH | 中文亂碼 |