linux shell 中文件编码查看及转换方法
一、查看文件編碼。?
??? 在打開文件的時候輸入: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編碼的文件名?
??? 這樣轉換以后"utf8編碼的文件名"會被轉換成GBK編碼(只是文件名編碼的轉換,文件內容不會發生變化)
轉載于:https://www.cnblogs.com/fashflying/p/6895208.html
總結
以上是生活随笔為你收集整理的linux shell 中文件编码查看及转换方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 辨别真假数据科学家必备手册:深度学习45
- 下一篇: 9 个使用前必须再三小心的 Linux