enca需要获取下:sudo apt-get install enca
iconv的一般用法是:(可以man iconv)
-f from code 源文件编码
-t to code 目标文件编码
-o output file 保存为文件
例子:
iconv -f GB2312 -t UTF-8 -o google.txt google.txt
将google.txt的编码由GB2312更新为UTF-8
enca也同上用法,一般在脚本中对于未曾提供的语言,enca不会报错,这样可以保证脚本顺利执行
enca -L zh_CN file 检查文件编码
enca -L zh_CN -x UTF-8 file 将文件编码修改为UTF-8并覆盖文件
具体的用法都可以去查看man手册或者google之
好了,不多说,查看脚本吧!
#!/bin/bash -x
#由于之前使用windows系统来存放过一些文本文件,利用dropbox同步过来的时候,文件发生乱码,故写脚本来批量处理
#这里是对所有的需求文件进行处理,后续可根据修改目录进行处理
SUBFIX="txt html htm conf"
#cd /home/gavin/tmp
if [ -z $1 ]then
cd $PWD
else
if [ -d $1 ]then
cd $1
else
echo " $1 is not exist"
exit 1
fi
fi
for i in $SUBFIX
do
files=`find . -name "*.$i"`
for f in $files
do
type=`file $f|awk -F':' '{print $2}' |awk '{print $1}'` #获取文件类型
if [ $type = "ISO-8859" ]then
#iconv -f GB2312 -t UTF-8 -o $f $f
enca -L zh_cn -x UTF-8 $f
else
echo "$f encoding is :$type"
fi
done
done
查看文件编码file命令file
ip.txt
查看文件编码file命令
file
ip.txt
ip.txt:
UTF-8
Unicode
text,
with
escape
sequences
一、利用iconv命令进行编码转换文件内容编码转换
iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件.
用法:
iconv
[选项...]
[文件...]
有如下选项可用:
输入/输出格式规范:
-f,
--from-code=名称
原始文本编码
-t,
--to-code=名称
输出编码
信息:
-l,
--list
列举所有已知的字符集
输出控制:
-c
从输出中忽略无效的字符
-o,
--output=FILE
输出文件
-s,
--silent
关闭警告
--verbose
打印进度信息
-?,
--help
给出该系统求助列表
--usage
给出简要的用法信息
-V,
--version
打印程序版本号
例子:
iconv
-f
utf-8
-t
gb2312
aaa.txt
>bbb.txt
这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件.
你可照着上面的命令格式,改改试试。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)