win使用telnet到ubuntu下vim顯示中文爲亂碼的解決方法~

1.幾個路徑:html

ubuntu: /etc/default/locale  至關於 centos:/etc/sysconfig/i18nubuntu

vimrc的路徑:① ~/.vimrc    ② /etc/vim/vimrcvim

2. 解決方法:centos

①添加語言支持
$sudo vim /var/lib/locales/supported.d/local#
添加下面的中文字符集zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.GB18030 GB18030

使其生效:$sudo dpkg-reconfigure locales
②vi ~/.vimrc(若是vi /etc/vim/vimrc的話,不知道爲何滿屏都是高亮的屏蔽字 = =!) ③
set fileencodings=utf-8,gbk set termencoding=utf-8,gbk (這裏gbk是我本身添加的,由於使用的系統是xp,xp內部使用的編碼爲gbk,termencoding這個字段又是跟終端顯示編碼有關) set encoding=prc

3.編碼的基礎知識 in case i forget this somedayui

Vim中有幾個選項會影響對多字節編碼的支持:
①encoding(enc):encoding是Vim的內部使用編碼,encoding的設置會影響Vim內部的Buffer、消息文字等。在 Unix環境下,encoding的默認設置等於locale;
Windows環境下會和當前代碼頁相同。在中文Windows環境下encoding的 默認設置是cp936(GBK)。 ②fileencodings(fenc):Vim在打開文件時會根據fileencodings選項來識別文件編碼,fileencodings能夠同時設置多個編碼,Vim會根據設置的順序來猜想所打開文件的編碼。 ③fileencoding(fencs) :Vim在保存新建文件時會根據fileencoding的設置編碼來保存。若是是打開已有文件,Vim會根據打開文件時所識別的編碼來保存,除非在保存時從新設置fileencoding。 ④termencodings(tenc):在終端環境下使用Vim時,經過termencoding項來告訴Vim終端所使用的編碼。

Vim中的編碼轉換

Vim內部使用iconv庫進行編碼轉換,若是這幾個選項所設置的編碼不一致,Vim就有可能會轉換編碼。打開已有文件時會從文件編碼轉換到encoding所設置的編碼;
保存文件時會從encoding設置的編碼轉換到fileencoding對應的編碼。常常會看到Vim提示[已轉換],這是代表Vim內部做了編碼轉換。
終端環境下使用Vim,會從termencoding設置的編碼轉換到encoding設置的編碼。
ps:能夠用|:help encoding-values|列出Vim支持的全部編碼。

4. 改變已存在文件的編碼方法:this

① 好比將GBK的格式轉換成utf-8格式:
方法:先打開文件,使用命令::set fileencoding=utf-8
②使用iconv命令:
[root@www ~]# iconv --list
[root@www ~]# iconv -f 本來編碼 -t 新編碼 filename [-o newfile]
選項與參數:
--list :列出 iconv 支持的語系數據
-f     :from ,亦即來源之意,後接本來的編碼格式;
-t     :to ,亦即後來的新編碼要是什麼格式;
-o file:若是要保留本來的檔案,那麼使用 -o 新檔名,能夠創建新編碼檔案。

範例一:將 /tmp/vitest/vi.big5 轉成 utf8 編碼吧!
[root@www ~]# cd /tmp/vitest
[root@www vitest]# iconv -f big5 -t utf8 vi.big5 -o vi.utf8
[root@www vitest]# file vi*
vi.big5: ISO-8859 text, with CRLF line terminators
vi.utf8: UTF-8 Unicode text, with CRLF line terminators
PS:引用自《鳥哥的私房菜》~~~

5.參考資料:編碼

http://blog.chinaunix.net/uid-26808060-id-4338345.html
http://www.cnblogs.com/xkfz007/archive/2011/11/17/2252019.html
相關文章
相關標籤/搜索