一.查看文件編碼
file name;//可以顯現文件的編碼格式(有的系統不可以)
二.文件編碼轉換
使用iconv轉換,
iconv -f encoding -t encoding inputfile;
例如:iconv -f utf-8 -t gb2312 file1;
用法:iconv [選項..] [文件]
-f, 原始編碼
-t,輸出編碼
信息:
-l,---list 列舉系統所有安裝的已知字符集
輸出控制:
-c 從輸出中忽略無效的字符
-o ---output 輸出文件
實例:遍歷目錄下的所有文件,改變utf8編碼到gb2312
for i in `find ./ -type f -name '*.txt'`;
do
echo $i
echo ${i}.tmp
iconv -f utf-8 -t gb2312 $i>${i}.tmp
mv ${i}.tmp $i;
done
問題記錄:
iconv轉換失敗,腳本主機沒有暗轉gb2312編碼,只有gbk,導致一開始轉化老是失敗。
轉載1:
- #!/bin/bash
- #1.變量定義
- directory="/home/wzy/Downloads/execl"
- f_encoding="utf-8"
- t_encoding="gbk"
- #2.遍歷子目錄
- for dir in `ls $directory`
- do
- if [ -d $directory/$dir ]
- then
- #3.遍歷子目錄的文件
- for file in `ls $directory/$dir`
- do
- if [ -e $directory/$dir/$file ]
- then
- #4.文件類型轉換
- iconv -f $f_encoding -t $t_encoding $directory/$dir/$file -o $directory/$dir/iconv.$file
- #5.刪除原始文件
- if [ $? -eq 0 ]
- then
- rm $directory/$dir/$file
- fi
- fi
- done
- fi
- done
