0%

iconv

iconv 命令 详解

iconv 是一个强大的字符编码转换工具,常用于在不同编码之间转换文件或字符串的编码格式。以下是对其常用功能和参数的详解:


命令基本格式

1
iconv [选项] -f <原始编码> -t <目标编码> [输入文件] -o [输出文件]
  • -f: 指定输入文件的编码(from)。
  • -t: 指定目标文件的编码(to)。
  • -o: 指定输出文件(默认输出到标准输出)。

常用参数详解

  1. 基本参数

    • **-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
  2. 列出支持的编码

    1
    iconv -l

    该命令列出 iconv 支持的所有编码格式。

  3. 处理标准输入
    使用管道将字符串直接传递给 iconv

    1
    echo "你好,世界" | iconv -f UTF-8 -t GBK
  4. 忽略或替代无效字符

    • //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

示例用法

  1. 将文件从 UTF-8 转换为 GBK

    1
    iconv -f UTF-8 -t GBK input.txt -o output.txt
  2. 将字符串从 GBK 转换为 UTF-8

    1
    echo "你好" | iconv -f GBK -t UTF-8
  3. 转换整个目录的文件
    使用 findiconv 的组合:

    1
    find ./ -name "*.txt" -exec iconv -f GBK -t UTF-8 {} -o converted_{} \;
  4. 排查编码问题
    当文件中有乱码时,可以尝试转换为不同编码格式查看结果。


应用场景

  1. 文本文件国际化:在跨平台和多语言环境中转换文件编码。
  2. 解决乱码问题:修复因编码不一致导致的显示错误。
  3. 批量处理文件:通过脚本将大量文件的编码格式进行转换。

注意事项

  • 转换前确认文件的原始编码(例如通过工具 filechardet 检测)。
  • 在转换时,确保目标编码支持原始文件中的所有字符,否则可能会出现数据丢失。

更多参考资料:

感谢老板支持!敬礼(^^ゞ