檔案編碼問題

來源:互聯網
上載者:User

偶爾我們會碰到vim開啟某個檔案的時候出現亂碼,這很可能是編碼問題,Windows中預設的檔案格式是GBK(gb2312),而Linux一般都是UTF-8。                                                  
         中文編碼有utf-8,big5,gb2312等。那麼我們如何在Linux中查看編碼及如何進行對檔案進行編碼轉換呢?
 
一、查看編碼
1、查看系統預設支援的編碼:
[root@localhost ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
SYSFONT="lat0-sun16"
 
2、查看終端介面的編碼:
 這個和LANG變數有關:
[root@localhost ~]# echo $LANG
zh_CN.UTF-8
 
3、查看檔案編碼
在Linux中查看檔案編碼可以通過以下幾種方式:
1)在Vim中可以直接查看檔案編碼
      :set fileencoding
    如果你只是想查看其它編碼格式的檔案或者想解決用Vim查看檔案亂碼的問題,那麼你可以在
      ~/.vimrc 檔案中添加以下內容:
    set encoding=utf-8 fileencodings=ucs-bom,utf-8,big5,gb2312,cp936,latin1
        這樣,就可以讓vim自動識別檔案編碼(可以自動識別UTF-8或者GBK編碼的檔案),其實就是依照fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用   latin-1(ASCII)編碼開啟。
2) enca (如果你的系統中沒有安裝這個命令,可以用sudo yum install -y enca 安裝 )查看檔案編碼
   $ enca filename
   filename: Universal transformation format 8 bits; UTF-8
    CRLF line terminators
 需要說明一點的是,enca對某些GBK編碼的檔案識別的不是很好,識別時會出現: 
   Unrecognized encoding
           一般情況下,只要開啟終端介面的軟體與檔案的編碼一致就可以避免亂碼問題。
 
二、檔案編碼轉換
1.在Vim中直接進行轉換檔編碼,比如將一個檔案轉換成utf-8格式
 :set fileencoding=utf-8
 
2. enconv 轉換檔編碼,比如要將一個GBK編碼的檔案轉換成UTF-8編碼,操作如下
     enconv -L zh_CN -x UTF-8 filename
 
3. iconv 轉換,iconv的命令格式如下:
    iconv -f 原編碼 -t 新編碼 filename
   比如將一個UTF-8 編碼的檔案轉換成GBK編碼
 [root@localhost ~]# iconv -f cp936 -t utf-8  -o appops.txt
    -o 表示建立一個新編碼檔案,保留源檔案及其原編碼
 
本文出自 “吖one的學習筆記” 部落格

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.