首頁  >  問答  >  主體

linux - iterm 配置utf8编码,本地终端中文不乱码,ssh远程中文乱码,咋整啊

高洛峰高洛峰2729 天前938

全部回覆(4)我來回復

  • PHPz

    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

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 12:08:30

    遇到了同樣的問題,主要是遠端伺服器的語言編碼與終端的編碼不一致。

    在遠端伺服器端的 ~/.bashrc 檔案裡面加入以下程式碼:

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

    然後bash一下,中文就可以正常顯示。

    下次登入 .bashrc 檔案自動執行,中文照樣正常顯示。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 12:08:30

    遠端終端與本地端編碼不符的原因

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦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"

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

    回覆
    0
  • 取消回覆