ubuntu系统默认文件编码为utf-8,windows中一般为GBK,GB2312,GB18030在ubuntu上打开均为乱码,在网上查了下系统自带有个iconv命令可以直接转换文件编码,但默认只能一次一个文件也不能使用通配,所以就自己写了个脚本可以批量转换文件编码:
          新建个文件例如iconv.sh,内容如下:
#!/bin/bash
# iconv file to utf-8
read -p "Directory or file ? input: d or f.  " DF
directory() {
   read -p "Input the directory,like:/home/lem/Music/: " DIR
   [ ! -d $DIR ] && echo "$DIR not exist" && exit
   [ ! -d ${DIR}utf-8 ] &&  mkdir ${DIR}utf-8
   for I in `ls $DIR`;do
        [ ! -f $DIR$I ] && echo "Missing $DIR$I is not a file." && continue
        iconv -f GBK -t utf-8 $DIR$I > ${DIR}utf-8/$I.utf-8 2> /dev/null
   done
   echo "Success,new files in ${DIR}utf-8"  
}
file() {
   read -p "Input the file:" FILE
   for I in $FILE ;do
        [ ! -f $FILE ] && echo "$FILE not exist" && continue
        iconv -f GBK -t utf-8 $FILE > $FILE.utf-8 2> /dev/null
   done
}
case $DF in
d)
   directory ;;
f)
   file ;;
*)
   echo "Input error,please input d or f." 
   exit ;;
esac

           说下使用方法,例如你想转换/media/file/fils目录中的所有文件,先把上边的脚本保存任何你能找到的地方,例如/media/file/scripts/iconv.sh,然后切换到你想要转换编码的目录/media/file/files目录,然后执行:
# bash /media/file/scripts/iconv.sh 

            同样也可以指定单个文件为转换目标。