Linux下编码的查看与转换

一、文件内容编码的查看与转换(enca或者 iconv)

在linux做开发或者系统管理遇到乱码是经常的事情,主要windows下中 文的默认编码是gb2312,而linux下是utf-8。很多时候 涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,今天我 要推荐的是另一个shell下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,使用上也比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”则会报错。这对于脚本编写是比较方便的事情
源地址:http://blog.sina.com.cn/s/blog_44c07fb30100em10.html

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

#安装enca
yum install enca

#查询单个文件的编码
enca index.html
或者
enca  -L zh_CN  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

源地址:http://www.itqun.net/content-detail/140488.html

也可以使用:iconv --list  && iconv -f GB2312 -t UTF-8 baidu.htm > new_baidu.htm


二、文件名编码的转换 

从Linux往windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。而在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK

1、安装convmv
yum -y install convmv

2、用法
convmv -f 源编码 -t 新编码 [选项] 文件名
常用参数:
-r  递归处理子文件夹
--notest  真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
--list   显示所有支持的编码
--unescap  可以做一下转义,比如把 变成空格

例如:我们有一个utf8编码的文件名,转换成GBK编码,命令如下:
convmv -f UTF-8 -t GBK --notest utf8编码的文件名
这样转换以后"utf8编码的文件名"会被转换成GBK编码(只是文件名编码的转换,文件内容不会发生变化)

rfc:http://www.cnblogs.com/cosiray/archive/2012/05/04/2483111.html
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值