Chinaunix首页 | 论坛 | 博客
  • 博客访问: 569048
  • 博文数量: 137
  • 博客积分: 4040
  • 博客等级: 上校
  • 技术积分: 1584
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-08 13:05
文章分类

全部博文(137)

文章存档

2011年(10)

2010年(23)

2009年(104)

分类: LINUX

2010-11-24 21:11:41

在linux做开发或者系统管理遇到乱码是经常的事情,主要windows下中文的默认编码是gb2312,而linux下是utf-8。

很多时候 涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换。

ENCA,用它不仅可以转换编码,还可以查看文件的原始编码,使用上也比iconv更加方便。

在ubuntu下安装enca很简单,apt一下就行了,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”则会报错。


安装enca
apt-get install enca

查询单个文件的编码
enca index.html

转换单个文件的编码
enca -L none -x utf-8  index.html

转换批量文件的编码
find  ./ -type f -name "*.htm*" | cat $1 |  sort | grep -v svn >  files.list
vim enca_list.sh
   插入以下代码:
   #!/bin/sh
   cat $1 | while read LINE
   do
           echo $LINE
           #enca $LINE
           enca -x utf-8 $LINE
           #enca $LINE
   done
保存退出后
chmod +x enca_list.sh
执行脚本: ./enca_list.sh files.list


阅读(1579) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~