由於一些原因,我們經常會遇到Linux服務器下面顯示亂碼的問題,這是因為客戶端,服務器,文件的字符集編碼不一致導致的,這裡我們說一下如何轉換文件的字符集。
轉換文件的字符集可以使用命令:
iconv -f {轉換前字符集} -t {轉換後的字符集} inputfile -o outputfile
注意,如果不指定-o參數的話,那麼iconv只在平面上面打印文件,但是不會改變原來文件的字符集屬性.
例如:我們需要將一個文件從utf-8 轉換為 gb18030,命令如下:
iconv -f utf-8 -t gb18030 a.txt -o b.txt
當然,也可以通過重定向寫到新文件中
iconv -f utf-8 -t gb18030 a.txt > b.txt
也可以結合ls -l命令來生成批量的轉換文件的腳本,如下:
ls -lrt|awk '{print "iconv -f utf-8 -t gb18030 " $9 " -o " $9 ".new"}'
也可以通過find命令結合xargs或者 -exec, 直接進行轉換