MAC OSX 下 iTerm 2 加 Oh-My-Zsh 下遠程ssh的亂碼問題

最近遠程SSH到服務器運行程序經常出現   “UnicodeEncodeError: 'ascii' codec can't encode character in position 0: ordinal not in range(128)” 這個錯誤,起初以爲是我用 Sublime Text 3文件設置的編碼問題,後來看了編碼也不是。之後用服務器本地的終端運行程序就沒有出現這個錯誤,因此確定錯誤是出現在 MAC 這邊的, 究竟 MAC 這邊是Iterm的問題還是系統的問題需要確定一下,後來用系統自帶的終端運行程序沒有出現上面說的問題。

這下確定了是由於我使用的Iterm終端加 Oh-My-Zsh的編碼問題,這下確定了之後就好辦了。經過一堆搜索之後,確定瞭解決辦法。

首先在終端輸入,查看你的編碼集,

locale
我的出來的是一堆,zh_CN.UTF-8 的編碼。

vim ~/.zshrc
在文件的末尾加入:

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

當然我直接更改了更多的省事。

export LANG=en_US.UTF-8
export LC_CTYPE="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
export LC_TIME="en_US.UTF-8"
export LC_COLLATE="en_US.UTF-8"
export LC_MONETARY="en_US.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
export LC_PAPER="en_US.UTF-8"
export LC_NAME="en_US.UTF-8"
export LC_ADDRESS="en_US.UTF-8"
export LC_TELEPHONE="en_US.UTF-8"
export LC_MEASUREMENT="en_US.UTF-8"
export LC_IDENTIFICATION="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"

再在終端下面輸入:

locale

就可以看到字符編碼更改了。中文輸入和顯示問題就解決了。


-----------------EOF--------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章