iconv 命令 详解
iconv
是一个强大的字符编码转换工具,常用于在不同编码之间转换文件或字符串的编码格式。以下是对其常用功能和参数的详解:
命令基本格式
1 | iconv [选项] -f <原始编码> -t <目标编码> [输入文件] -o [输出文件] |
-f
: 指定输入文件的编码(from
)。-t
: 指定目标文件的编码(to
)。-o
: 指定输出文件(默认输出到标准输出)。
常用参数详解
基本参数
- **
-f
**:指定原始文件的编码格式。1
iconv -f UTF-8 -t GBK input.txt
- **
-t
**:指定目标编码格式。1
iconv -f UTF-8 -t ISO-8859-1 input.txt > output.txt
- **
-o
**:将输出保存到文件。1
iconv -f UTF-8 -t GBK input.txt -o output.txt
- **
列出支持的编码
1
iconv -l
该命令列出
iconv
支持的所有编码格式。处理标准输入
使用管道将字符串直接传递给iconv
:1
echo "你好,世界" | iconv -f UTF-8 -t GBK
忽略或替代无效字符
//IGNORE
: 忽略无法转换的字符。1
iconv -f UTF-8 -t GBK//IGNORE input.txt -o output.txt
//TRANSLIT
: 用近似字符替换无法转换的字符。1
iconv -f UTF-8 -t ASCII//TRANSLIT input.txt -o output.txt
示例用法
将文件从 UTF-8 转换为 GBK
1
iconv -f UTF-8 -t GBK input.txt -o output.txt
将字符串从 GBK 转换为 UTF-8
1
echo "你好" | iconv -f GBK -t UTF-8
转换整个目录的文件
使用find
和iconv
的组合:1
find ./ -name "*.txt" -exec iconv -f GBK -t UTF-8 {} -o converted_{} \;
排查编码问题
当文件中有乱码时,可以尝试转换为不同编码格式查看结果。
应用场景
- 文本文件国际化:在跨平台和多语言环境中转换文件编码。
- 解决乱码问题:修复因编码不一致导致的显示错误。
- 批量处理文件:通过脚本将大量文件的编码格式进行转换。
注意事项
- 转换前确认文件的原始编码(例如通过工具
file
或chardet
检测)。 - 在转换时,确保目标编码支持原始文件中的所有字符,否则可能会出现数据丢失。
更多参考资料: