我使用的centos7,裏面的軟件多用utf-8編碼,好比gnome-terminal。他的文本界面不支持中文,支持中文彷佛要增長內核模塊。
linux中用enca查看文件的編碼方式,但有時也會出錯(GBK編碼方式),若是想確認文件編碼方式,能夠進入vim中,在命令行中輸入 set encoding=gb2312 或者其餘的編碼方式,文檔正確顯示則編碼方式就時相應的編碼;也能夠只輸入 set fileencoding ,vim會輸出文件的編碼。
centos的gnome-terminal終端中默認的編碼是utf-8,不能正常顯示編碼是gb23十二、gbk、gb18030的漢字,使用luit轉換編碼的方式也不能正常顯示。這三個編碼都是中國的本地編碼,gbk是對gb2312的擴展,gb18030是對gbk的擴展,和utf-8不兼容;轉換時必須將其轉換爲unicode,再轉換爲utf-8,utf-8轉換爲gb2312也必須通過unicode。
vim 的字符編碼設置選項有:
set encoding=utf-8 enc,vim內部的編碼,包括內存數據和配置文件,默認爲$LANG,沒有則是latin1,編碼應該和終端保持一致
set fileencodings=utf-8,gb2312,gbk,gb18030 fencs,打開文檔時檢測文件的編碼類型,都不符合時默認使用encoding的設置項打開
set fileencoding=utf-8 fenc,編輯文件的編碼
set termencoding=utf-8 vim工做的緩衝區的字符編碼方式
具體查看:http://www.cnblogs.com/freewater/archive/2011/08/26/2154602.html
這樣設置以後用vim編輯包含漢字的文檔能夠在終端正常顯示了,由於他們都是utf-8編碼。
文檔編碼轉換:
使用vim轉換:用vim打開文檔,在底行模式中輸入 set fileencoding=utf-8 就能夠將gb2312文檔轉換爲utf-8的文檔了。
使用工具enca:
enca -L 當前語言 -x 目標編碼 文件名 //語言zh_CN
使用工具轉換enconv(常出錯):
enconv -L zh_CN -x UTF-8 filename gb2312轉換爲utf-8
iconv -f GBK -t UTF-8 file1 -o file2 utf-8轉換爲gbk
Linux 文件名編碼轉換:
原來在windows裏的文件都是用GBK編碼的,轉換使用工具convmv。
convmv -f 源編碼 -t 新編碼 [選項] 文件名
經常使用選項:
-r 遞歸處理子文件夾
--notest 真正進行操做,請注意在默認狀況下是不對文件進行真實操做的,而只是試驗
--list 顯示全部支持的編碼
--unescap 能夠作一下轉義,好比把%20變成空格
注意:不要在NTFS和FAT文件 系統中使用此命令,不然可能產生意外結果,若是要在Linux 中正確的顯示NTFS和 FAT的中文件名,能夠經過mount參數來解決,具體方法查看一下man手冊。
網頁編碼:
<meta http-equiv="content-type" content="text/html" charset="utf-8"/>
使用vim編輯的網頁若是沒有指定使用什麼編碼方式,firefox瀏覽器會默認使用gb2312,而若是網頁文件保存的編碼是utf-8則會出現亂碼。在firefox中的設置方式是有一個字符編碼的組件,能夠設置firefox網頁顯示內容的編碼,選擇unicode就能夠顯示utf-8編碼的網頁了,可是建議在網頁裏直接指定網頁顯示的編碼方式,這樣瀏覽器會自動選擇編碼方式。對於使用utf-8和gb2312的區別,使用utf-8編碼的文檔佔用的存儲空間更大,可是兼容性更好,國際上通用的是utf-8。而gb2312則在國內用得不少。
編碼方式
分爲內碼和交換碼,內碼用於計算機內部處理,交換碼用於文件的交換,先將文將由內碼轉換爲交換碼,再將交換碼轉換爲另外一中編碼的內碼;ASCII將交換碼做爲內碼使用,漢字編碼的內碼和交換碼不一樣。
cp936 中文windows的默認編碼
ucs-bom
utf-8
ucs-2
utf-16
utf-32
ucs-4
gb2312
gbk
gb18030
big5 即大五碼,繁體漢字內碼,是業界的標準,最新爲big5-2003,被包含在交換碼CNS11643的附表中。windows繁體版本的編碼
CCCII 中文交換碼
CNS11643 中文交換碼
參考:
http://i.cnblogs.com/EditPosts.aspx?postid=4923980
http://www.2cto.com/os/201305/211266.html
http://bbs.csdn.net/topics/300038221
http://blog.csdn.net/fmddlmyy/article/details/372148
http://blog.csdn.net/ultrani/article/details/8432767html