欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
有些情况下,我们需要修改文件的字符集,以便解决乱码或者其他问题。在linux下,操作系统为我们提供了ICONV这个命令,下面我们来看一下这个命令的具体使用方法。
[plain]
[root@oadata ~]# iconv –help
用法: iconv [选项…] [文件…]
转换给定文件的编码。
输入/输出格式规范:
-f, –from-code=名称 原始文本编码
-t, –to-code=名称 输出编码
信息:
-l, –list 列举所有已知的字符集
输出控制:
-c 从输出中忽略无效的字符
-o, –output=FILE 输出文件
-s, –silent 关闭警告
–verbose 打印进度信息
-?, –help 给出该系统求助列表
–usage 给出简要的用法信息
-V, –version 打印程序版本号
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
For bug reporting instructions, please see: .
如果要查看某个文件的字符信息,linux同样提供了file函数:
[plain]
[root@oadata ~]# file –help
Usage: file [OPTION]… [FILE]…
Determine file type of FILEs.
-m, –magic-file LIST use LIST as a colon-separated list of magic
number files
-z, –uncompress try to look inside compressed files
-b, –brief do not prepend filenames to output lines
-c, –checking-printout print the parsed form of the magic file, use in
conjunction with -m to debug a new magic file
before installing it
-f, –files-from FILE read the filenames to be examined from FILE
-F, –separator string use string as separator instead of `:’
-i, –mime output mime type strings
-k, –keep-going don’t stop at the first match
-L, –dereference causes symlinks to be followed
-n, –no-buffer do not buffer output
-N, –no-pad do not pad output
-p, –preserve-date preserve access times on files
-r, –raw don’t translate unprintable chars to \ooo
-s, –special-files treat special (block/char devices) files as
ordinary ones
–help display this help and exit
–version output version information and exit
[root@oadata ~]# file -i a.log
a.log: text/plain; charset=us-ascii
单文件的字符集转换:
[plain]
[oracle@oadata dir1]$ ls -l
总计 4
-rw-r–r– 1 oracle oinstall 22 10-12 13:14 utf8.txt
[oracle@oadata dir1]$ file -i utf8.txt
utf8.txt: text/plain; charset=utf-8
[oracle@oadata dir1]$ iconv -f utf-8 -t gbk -o gbk.txt utf8.txt
[oracle@oadata dir1]$ ls -l
总计 8
-rw-r–r– 1 oracle oinstall 15 10-12 13:43 gbk.txt
-rw-r–r– 1 oracle oinstall 22 10-12 13:14 utf8.txt
[oracle@oadata dir1]$ file -i gbk.txt
gbk.txt: text/plain; charset=iso-8859-1
对某目录下的文件进行字符集转换:
[plain]
for i in `find ./ -name *.php` ;
do echo $i;iconv -c -f gb18030 -t utf8 $i -o /tmp/iconv.tmp;
mv /tmp/iconv.tmp $i;
done
地球仍然转重,世间依旧善变,而我永远爱你。