0%

Linux下编码转换

工作中使用git进行代码管理,由于跨操作系统的原因,经常遇到文本编码乱码的问题。这是因为Windows默认GBK编码格式,Linux默认UTF-8编码格式,使用以下命令可以进行批量编码转换。

iconv

$ iconv --help
用法: iconv [选项...] [文件...]
转换给定文件的编码。

 输入/输出格式规范:
  -f, --from-code=名称     原始文本编码
  -t, --to-code=名称       输出编码

 信息:
  -l, --list                 列举所有已知的字符集

 输出控制:
  -c                         从输出中忽略无效的字符
  -o, --output=文件        输出文件
  -s, --silent               关闭警告
      --verbose              打印进度信息

  -?, --help                 给出此帮助列表
      --usage                给出简要的用法信息
  -V, --version              打印程序版本号

长选项的强制或可选参数对对应的短选项也是强制或可选的。

enca

iconv 需要确认原始编码格式,使用enca可以探测文件格式

enca -L zh_CN file          #检查文件格式
enca -L zn_CN -x UTF-8 file #转换为UTF-8编码
$ enca -L zh_CN search/*
enca: Cannot read file `search/demos': Is a directory
search/rch.c: Simplified Chinese National Standard; GB2312
search/ch.c: Universal transformation format 8 bits; UTF-8

recode

Charset converter tool and library http://recode.progiciels-bpi.ca