iconv¶
参数¶
-f encoding: 把字符从encoding编码开始转换。
-t encoding: 把字符转换到encoding编码。
-l: 列出已知的编码字符集合
# 不使用 -o 参数, 则会输出到标准输出, 也可以使用重定向写入文件
-o file: 指定输出文件
-c: 忽略输出的非法字符
-s: 禁止警告信息,但不是错误信息
--verbose: 显示进度信息
-f和-t所能指定的合法字符在-l选项的命令里面都列出来了。
实例¶
批量文件编码转换
# 创建对应目录, 转码之后的文件放置在对应utf目录下
find . -type d | sed 's#^./##g' |awk 'NR!=1{print "utf/"$0}'|xargs mkdir -p
# 转码, 将所有 txt, 及 java 文件 gbk 编码转成 utf-8
find . -type f -name "*.txt" -o -name "*.java"|sed 's#^./##g'|awk '{print "iconv -f gbk -t utf-8 \""$1"\" > \"utf/"$1"\""}' |bash