標籤:
1.幾個路徑:
ubuntu: /etc/default/locale 相當於 centos:/etc/sysconfig/i18n
vimrc的路徑:① ~/.vimrc ② /etc/vim/vimrc
2. 解決方案:
①添加語言支援
$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,gbkset termencoding=utf-8,gbk (這裡gbk是我自己添加的,因為使用的系統是xp,xp內部使用的編碼為gbk,termencoding這個欄位又是跟終端顯示編碼有關)set encoding=prc
3.編碼的基礎知識 in case i forget this someday
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. 改變已存在檔案的編碼方法:
① 比如將GBK的格式轉換成utf-8格式:方法:先開啟檔案,使用命令::set fileencoding=utf-8②使用iconv命令:[[email protected] ~]# iconv --list[[email protected] ~]# iconv -f 原本編碼 -t 新編碼 filename [-o newfile]選項與參數:--list :列出 iconv 支援的語係數據-f :from ,亦即來源之意,後接原本的編碼格式;-t :to ,亦即後來的新編碼要是什麼格式;-o file:如果要保留原本的檔案,那麼使用 -o 新檔名,可以建立新編碼檔案。範例一:將 /tmp/vitest/vi.big5 轉成 utf8 編碼吧![[email protected] ~]# cd /tmp/vitest[[email protected] vitest]# iconv -f big5 -t utf8 vi.big5 -o vi.utf8[[email protected] vitest]# file vi*vi.big5: ISO-8859 text, with CRLF line terminatorsvi.utf8: UTF-8 Unicode text, with CRLF line terminatorsPS:引用自《鳥哥的私房菜》~~~
5.參考資料:
http://blog.chinaunix.net/uid-26808060-id-4338345.htmlhttp://www.cnblogs.com/xkfz007/archive/2011/11/17/2252019.html
win使用telnet到ubuntu下vim顯示中文為亂碼的解決方案~