Windows 預設編碼 GBK/GB2312,Linux 預設 UTF-8,跨平台移動檔案常發生亂碼。Ubuntu 使用 enca 工具可快速偵測與批次轉碼。
sudo apt-get install enca
# 查看編碼
enca -L zh_CN filename
# 就地轉碼為 UTF-8
enca -L zh_CN -x UTF-8 filename
# 轉碼並另存新檔
enca -L zh_CN -x UTF-8 < file1 > file2
#!/bin/bash
# 將指定目錄下所有檔案編碼轉為 UTF-8
function change_file_encoding() {
for file in $(ls -1); do
if [[ -d "$file" && "$1" = "y" ]]; then
cd "$file"
echo "進入目錄: $file"
change_file_encoding "y"
cd ..
elif [[ -f "$file" ]]; then
echo "轉碼: $file"
enca -L zh_CN -x UTF-8 "$file"
fi
done
}
read -p "請輸入目錄路徑: " path
if [[ ! -x "$path" ]]; then
echo "目錄不存在或無執行權限"; exit 1
fi
read -p "是否遞迴處理子目錄? (y/n): " recur
cd "$path"
change_file_encoding "$recur"
encoding.shchmod +x encoding.sh./encoding.sh 依提示輸入路徑與遞迴選項
此腳本可一次性解決大量遷移檔案的編碼亂碼問題,支援遞迴處理子目錄,生產環境遷移必備工具。