PHPz2017-04-17 12:08:30
編輯~/.vimrc文件,加上以下幾行:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
http://blog.icodeu.com/?p=560
天蓬老师2017-04-17 12:08:30
遇到了同樣的問題,主要是遠端伺服器的語言編碼與終端的編碼不一致。
在遠端伺服器端的 ~/.bashrc 檔案裡面加入以下程式碼:
export LANG='UTC-8'
export LC_ALL='en_US.UTF-8'
然後bash一下,中文就可以正常顯示。
下次登入 .bashrc 檔案自動執行,中文照樣正常顯示。
伊谢尔伦2017-04-17 12:08:30
伺服器是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"
這時,中文輸入和顯示都正常了。