1. 程式人生 > >ISO 8859(GBK) 編碼檔案轉碼到UTF-8編碼檔案

ISO 8859(GBK) 編碼檔案轉碼到UTF-8編碼檔案

問題產生:

         現需要把一個在windows的Myeclipse下開發的小程式,轉到Linux系統下去安裝執行,結果程式中的.java檔案中的中文到Linux下vim顯示全是亂碼。

       現做以下分析:其主要原因是windows中Myeclipse中預設的檔案編碼格式為GBK或GB2312格式,而Linux系統預設的檔案格式是UTF-8, 這樣在windows下GBK格式的中文,到Linux下vim檢視中文全部顯示亂碼,英文正常。

解決辦法:      

      1. 修改vim配置檔案,使得用vim可以正常檢視檔案中的中文字元,但是此法並沒有改變原始檔的編碼格式

             具體方法:找到linux系統下的vimrc檔案(目錄/usr/share/vim/vimrc)用root許可權開啟並在檔案末尾新增下面四行程式碼:

   set fileencodings=utf-8,gb2312,gbk,gb18030

   set termencoding=utf-8

   set fileformats=unix

   set encoding=prc

              再用vim開啟,就可以正常顯示亂碼的檔案了。(記住但並未改變原始檔的編碼格式,只是vim讀檔案時自己完成了轉碼)

      2. 改變windows下的原始碼檔案的編碼格式為Linux下編碼格式


       先說下檢視檔案編碼格式的命令:

                (1)用vim開啟檔案的話可以輸入 :set fileencoding 回車檢視

                (2)用命令  file 檔名       例如   file  a.txt      檢視a.txt 的檔案編碼格式

             然後就是具體的轉碼操作:

                   Linux可以用iconv命令進行文件的轉碼操作,具體命令格式:

                                   iconv -f GBK -t UTF-8  待轉碼檔名  -o  輸出檔名

    解釋下此命令,其中  -f 接的是代轉檔案編碼格式(即被轉碼格式)  -t  接的是目標檔案編碼格式(即目標編碼格式)

                    -o  表示輸出。上面完成了  將待轉碼檔案(GBK編碼格式) 轉換成 輸出檔案(UTF-8編碼格式) ,也就是完成了從GBK到UTF-8的轉換。(提示:要想轉碼後不產生新檔案,把代轉檔名和輸出檔名寫成同一個就行了)

                    舉例:iconv   -f   ISO-8859  -t  UTF-8   zhuan.java   -o   zhuan.java