目录
35. shell命令--iconv
功能说明
iconv 是一个在 Linux 和其他 Unix-like 系统上常用的命令行工具,用于字符集之间的转换。当你处理来自不同源的数据,并且这些数据可能使用不同的字符集编码时,iconv 可以帮助你确保数据的正确性和一致性。
iconv 命令 是用来转换文件的编码方式的,比如它可以将 UTF8 编码的转换成 GB18030 的编码,反过来也行。JDK 中也提供了类似的工具 native2ascii。Linux 下的 iconv 开发库包括 iconv_open,iconv_close,iconv 等 C 函数,可以用来在 C/C++ 程序中很方便的转换字符编码,这在抓取网页的程序中很有用处,而 iconv 命令在调试此类程序时用得着。
语法格式
iconv [选项] [-f from-encoding] [-t to-encoding] [输入文件]
iconv [选项] [-f 编码] [-t 编码] [输入文件] [-o 输出文件]
Usage: iconv [OPTION...] [FILE...]
选项说明
-f, --from-code=名称:指定原始字符集。
-t, --to-code=名称:指定目标字符集。
-o, --output=FILE:指定输出文件。如果省略,则输出到标准输出。
-l, --list:列出已知的字符集。
-c:在输出时忽略无效的字符。
-s, --silent:在转换时静默模式,不显示警告。
--verbose:显示更多信息。
-?, --help:给出该系统求助列表。
--usage:给出简要的用法信息。
-V, --version:打印程序版本号
实践操作
0. 环境准备
mkdir -p /test/iconv
cd /test/iconv
1. 列出当前支持的字符编码
iconv -l
iconv -l |wc -l
2. 文件转码测试
touch file1.txt
file -bi file1.txt
echo '测试test' >file1.txt
file -bi file1.txt
iconv file1.txt -f utf-8 -t GB18030 -o file2.txt
file -bi file2.txt
cat file1.txt
cat file2.txt
注意事项
- 在进行字符集转换时,请确保你了解源字符集和目标字符集,以避免数据丢失或损坏。
- 如果目标字符集不支持源字符集中的某些字符,这些字符可能会被替换为问号(?)或其他占位符,或者根据 -c 选项被忽略。
- 某些字符集可能包含与特定语言或地区相关的字符,因此在进行字符集转换时,请确保选择与你的文本内容相匹配的字符集。