我們都知道在Windows下文件編碼默認為gbk或者是gb2312,但很多用戶有時需要把Windows下的文件移到Linux系統中,所以轉移後就經常出現亂碼的情況,這該怎麼辦呢?接下來小編就給大家介紹下Ubuntu查看和批量修改文件編碼的方法。
使用enca工具可以進行文件編碼的查看。
Ubuntu下的安裝命令:
sudo apt-get install enca
enca查看文件
enca -L zh_CN file 查看文件編碼
enca -L zh_CN -x UTF-8 file 更改文件編碼
enca -L zh_CN -x UTF-8 《 file1 》 file2 不想覆蓋原文件
下面是一個腳本,批量更改文件編碼:
#!/bin/bash
#將文件編碼更改為UTF-8
#用法
#1. 將文件命名encoding.sh
#2. chmod +x encoding.sh
#3. 。/set_encoding.sh
#4. 輸入目錄名稱
#5. 輸入是否遞歸更改
#$1表示是否要遞歸修改文件編碼
function change_file_encoing(){
for file in $(ls -l|awk ‘{print $9}’)
do
if [[ -d “$file” && $1 = y ]];then
cd $file
echo $file
change_file_encoing $1
cd 。。
elif [[ -f “$file” ]];then
echo $file
enca -L zh_CN -x UTF-8 $file
fi;
done;
#ecna -L zh_CN file UTF-8
}
read -p “please enter the dir path:” path #讀取目錄路徑
if [ ! -x “$path” ]; #判斷目錄是否存在且是否具有執行權限
then
echo “dir path not exists”
else
read -p “please enter if you want to recursive?y/n:” recur #是否遞歸
fi
if [ $recur = “y” ];
then
cd $path
change_file_encoing “y” #遞歸修改文件編碼
else
cd $path
change_file_encoing “n” #非遞歸修改
fi
Ubuntu查看和批量修改文件編碼的方法就介紹到這,不同系統的默認文件編碼是不一樣的,因此用戶可以通過上面介紹的方法修改編碼來解決亂碼問題。