iconv
是一个非常有用的工具,可以用来转换文件编码.以前经常用,现在来总结一下它的基本用法,先看看它的使用文档,命令行参数还是非常简单的:
$ iconv --help
用法: iconv [选项...] [文件...]
转换给定文件的编码。
输入/输出格式规范:
-f, --from-code=名称 原始文本编码
-t, --to-code=名称 输出编码
信息:
-l, --list 列举所有已知的字符集
输出控制:
-c 从输出中忽略无效的字符
-o, --output=文件 输出文件
-s, --silent 关闭警告
--verbose 打印进度信息
-?, --help 给出此帮助列表
--usage 给出简要的用法信息
-V, --version 打印程序版本号
长选项的强制或可选参数对对应的短选项也是强制或可选的。
要知道错误报告指令,请参看:
<http://www.debian.org/Bugs/>。
假设我现在有一个 1.c
文件,里面有一句中文注释,并且该文件的编码是 gbk
,那么在 linux
下查看这个文件的内容,可能会出现乱码,如下所示:
$ cat 1.c
#include <stdio.h>
int main(void)
{
// ����һ������
return 0;
}
可以查看该文件的编码:
$ file 1.c
1.c: C source, ISO-8859 text
针对乱码问题,我们可以使用 iconv
转换文件编码来解决,也就是将其转换为 utf-8
编码.同时,保险起见,不要覆盖原文件,操作如下所示:
$ iconv -f gbk -t utf-8 1.c -o 2.c
查看转换后的文件内容:
$ cat 2.c
#include <stdio.h>
int main(void)
{
// 这是一个测试
return 0;
}
查看转换后的文件编码:
$ file 2.c
2.c: C source, UTF-8 Unicode text