linux 查看文件编码

http://www.xiaojb.com/archives/it/convert-gbk-utf-8.shtml

http://space.itpub.net/10768286/viewspace-536375

http://www.cnblogs.com/cocowool/archive/2009/04/25/1443529.html

引用以上几篇文章的内容。

linux下主要是使用iconv和enca,其中enca需要自己装,以下是网址
http://freshmeat.net/projects/enca/
linux里面转换编码的方法很多,google了一下,一般的人都是用”iconv”命令来进行转换。但是由于我需要在脚本里面判断文件的编码,”iconv”就不太适用。其实Linux里面还有另一个能进行编码转换,并比”iconv”功能强大的”enca”。
使用方法:
enca -L zh_CN file 检查文件的编码
enca -L zh_CN -x UTF-8 file 将文件编码转换为"UTF-8"编码
enca -L zh_CN -x UTF-8 < file1 > file2 如果不想覆盖原文件可以这样
除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来,而”iconv”则会报错。这对于脚本编写是比较方便的事情。


2. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2


以上为引用
===============================
以下为自己写滴

根据引用文章的内容,直接使用enca,效果还不错。

另外,php也可以的,使用mb系列函数,其中一个函数mb_detect能够检测不同文件的编码是什么。但是既然有现成的linux命令,就直接用linux了。

批量处理

如果只想查看

find /home/utf/ -name *.txt|xargs enca -L zh_CN


如果想批量转换成UTF-8,不管原先是神马

首先,把/home/doc/下的txt全部拷贝到另一个文件夹/home/utf/下,
使用了/home/script/cp.php,在附件

find /home/doc/ -name *.txt|xargs php /home/script/cp.php /home/utf/


然后,

find /home/utf/ -name *.txt|xargs enca -L zh_CN -x UTF-8


如果愿意,可以查看

find /home/utf/ -name *.txt|xargs enca -L zh_CN|grep GB

应该没有显示。

如果愿意,可以再统统换成unix换行符

find /home/utf/ -name *.txt|xargs dos2unix



========================================

以动手实践为荣 , 以只看不练为耻;
以打印日志为荣 , 以单步跟踪为耻;
以空格缩进为荣 , 以制表缩进为耻;
以单元测试为荣 , 以人工测试为耻;

以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣 , 以冗余拖沓为耻;
以总结分享为荣 , 以X求其解为耻;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值