批量更改文件编码格式 utf8到gb2312

Posted 小菜77

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量更改文件编码格式 utf8到gb2312相关的知识,希望对你有一定的参考价值。

一.查看文件编码

  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:

  1. #!/bin/bash  
  2.   
  3. #1.变量定义  
  4. directory="/home/wzy/Downloads/execl"  
  5. f_encoding="utf-8"  
  6. t_encoding="gbk"  
  7.   
  8. #2.遍历子目录  
  9. for dir in `ls $directory`  
  10. do  
  11.     if [ -d $directory/$dir ]  
  12.     then  
  13.         #3.遍历子目录的文件  
  14.         for file in `ls $directory/$dir`  
  15.         do  
  16.             if [ -e $directory/$dir/$file ]  
  17.             then  
  18.                 #4.文件类型转换  
  19.                 iconv -f $f_encoding -t $t_encoding $directory/$dir/$file -o $directory/$dir/iconv.$file  
  20.                 #5.删除原始文件  
  21.                 if [ $? -eq 0 ]  
  22.                 then  
  23.                     rm $directory/$dir/$file  
  24.                 fi  
  25.             fi  
  26.         done  
  27.     fi  
  28. done 

以上是关于批量更改文件编码格式 utf8到gb2312的主要内容,如果未能解决你的问题,请参考以下文章

易语言汉字转utf-8

怎样把UTF8编码转成GB2312编码?

不打开文件转utf8

获取文本文件的编码,自动区分GB2312和UTF8

如何更改MySQL数据库编码为UTF-8或者GB2312?

易语言如何把GB2312格式转换成记事本里的utf-8?