描述

作用: "iconv""Linux"系统自带的用于转换"文件"编码的命令行工具
用法: iconv [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]
注意: linux配置文件中默认的字符集编码为"UTF-8";"UTF-8""unicode"的一种表达方式;"gb2312"是和"unicode"都是字符的编码方式,所以说"gb2312""utf-8"的概念应该不是一个层次上的

选项

1、控制"输入/输出"格式的选项

选项

解释说明

-f ENCODING 、--from-code=ENCODING

原始文本编码

-t ENCODING 、--to-code=ENCODING

输出编码

2、控制字符转换的选项

选项

解释说明

-c

从输出中忽略无效的字符

-o 、--output=FILE

(可选)输出文件

-s 、--silent

(忽略警告)不显示有关转换出错的信息

--verbose

打印进度信息

-? 、--help

显示此帮助并退出

--usage

给出简要的用法信息

-V 、--version

显示版本信息并退出

--unicode-subst=FORMATSTRING

替代不可转换的"Unicode"字符

--byte-subst=FORMATSTRING

替代不可转换的字节

--widechar-subst=FORMATSTRING

替代不可转换的宽字符

3、输出信息

选项

解释说明

-l 、--list

列出iconv支持的编码列表

实例

# 查看文件 (文件编码:gb2312)
[root@ /cdly/awk]# file file.txt # 输出:file.txt: ISO-8859 text, with CRLF line terminators
# 直接在linux下查看是无法解析中文
[root@ /cdly/awk]# cat file.txt


test
!!
# 转换: gb2312 --> utf8 (省略-o默认输出在终端,可以使用输出进行保存文件">"、">>")
[root@ /cdly/awk]# cat file.txt |iconv -f gb2312 -t utf8
你好
test
测试!!
[root@ /cdly/awk]# iconv -f gb2312 -t utf8 file.txt
你好
test
测试!!
# 转换: gb2312 --> utf8 将转换后的文件保存到"file_new.txt"内
[root@ /cdly/awk]# iconv -f gb2312 -t utf8 file.txt -o file_new.txt

# 查看文件类型
[root@ /cdly/awk]# file file*
file_new.txt: UTF-8 Unicode text, with CRLF line terminators
file.txt: ISO-8859 text, with CRLF line terminators
# 文件"file_new.txt"编码被修改成"utf-8"因此中文可以正常被解析
[root@ /cdly/awk]# cat file_new.txt
你好
test
测试!!

# 压缩包内容如果编码是"GB2312",可以使用以下方式进行操作
[root@ /cdly/awk]# zcat file.tar.gz |iconv -f GB2312 -t utf-8