linxu shell iconv 轉碼問題

一、查看文件編碼。 
    在打開文件的時候輸入:set fileencoding 
    即可顯示文件編碼格式。 



二、文件編碼轉換 
    1、在Vim中直接進行轉換文件編碼,比如將一個文件轉換成utf-8格式 
        在打開的文件中輸入:set fileencoding=utf-8 

    2、使用iconv轉換,iconv的命令格式如下: 

        iconv -f encoding -t encoding inputfile 
        比如將一個 編碼的文件轉換成GBK編碼 
        iconv -f UTF-8 -t GBK file1 -o file2 

iconv的用法: 

用法: iconv [選項...] [文件...] 
Convert encoding of given files from one encoding to another. 
輸入/輸出格式規範: 
  -f, --from-code=NAME       原始文本編碼 
  -t, --to-code=NAME         輸出編碼 
信息: 
  -l, --list                 列舉所有已知的字符集 
輸出控制: 
  -c                         從輸出中忽略無效的字符 
  -o, --output=FILE          輸出文件 
  -s, --silent               suppress warnings 
      --verbose              打印進度信息 
  -?, --help                 給出該系統求助列表 
      --usage                給出簡要的用法信息 
  -V, --version              打印程序版本號 

將GB2312編碼的文件內容轉換爲UTF-8 
iconv -f GB2312 -t UTF-8 file-name > new-file-name 

將UTF-8編碼的文件內容轉換爲GB2312 
iconv -f UTF-8 -t GB2312 file-name > new-file-name 
注意:轉換前一定要將重要的文件備份,特別是轉換文件內容的時候 

三、文件名編碼轉換: 

    從linux往windows拷貝文件或者從windows往Linux拷貝文件,有時會出現中文文件名亂碼的情況,出現這種問題的原因是因爲,windows的文件名 中文編碼默認爲GBK,而Linux中默認文件名編碼爲UTF8,由於編碼不一致,所以導致了文件名亂碼的問題,解決這個問題需要對文件名進行轉碼。 
    在Linux中專門提供了一種工具convmv進行文件名編碼的轉換,可以將文件名從GBK轉換成UTF-8編碼,或者從UTF-8轉換到GBK。 

    1、先看一下你的系統上是否安裝了convmv,如果沒安裝的話在終端輸入下面的命令安裝: 
       sudo yum -y install convmv 

    2、下面看一下convmv的具體用法: 
       convmv -f 源編碼 -t 新編碼 [選項] 文件名 
       常用參數: 
          -r 遞歸處理子文件夾 
          --notest 真正進行操作,請注意在默認情況下是不對文件進行真實操作的,而只是試驗。 
          --list 顯示所有支持的編碼 
          --unescap 可以做一下轉義,比如把%20變成空格 
    比如我們有一個utf8編碼的文件名,轉換成GBK編碼,命令如下: 
    convmv -f UTF-8 -t GBK --notest utf8編碼的文件名 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章