version linux 文件编码转换
1. 利用 iconv 命令进行文件内容编码转换
用法: iconv [选项...] [文件...]
有如下选项可用:
输入 / 输出格式规范:-f, --from-code = 名称 原始文本编码 - t, --to-code = 名称 输出编码
信息:-l, --list 列举所有已知的字符集
输出控制:-c 从输出中忽略无效的字符 - o, --output=FILE 输出文件 - s, --silent 关闭警告 --verbose 打印进度信息
-?, --help 给出该系统求助列表 --usage 给出简要的用法信息 - V, --version 打印程序版本号
eg:
- iconv -f gb2312 -t utf-8 1.txt > 2.txt
这个命令读取 1.txt 文件,从 gb2312 编码转换为 utf-8 编码, 其输出定向到 2.txt 文件。注:windows 下写字板生成的 txt 一般是 gb18030 编码,如果指定错误会报如下错误:iconv: 未知 6071 处的非法输入序列
2. 文件名编码转换
因为现在用 linux, 原来在 windows 里的文件都是用 GBK 编码的。所以 copy 到 linux 下是乱码,文件内容可以用 iconv 来转换可是好多中文的文件名还是乱码,找到个可以转换文件名编码的命令,就是 convmv。convmv 命令详细参数
eg:
- convmv -f GBK -t UTF-8 *.mp3
不过这个命令不会直正的转换,你可以看到转换前后的对比。如果要直正的转换要加上参数 --notest
- convmv -f GBK -t UTF-8 --notest *.mp3
-f 参数是指出转换前的编码,-t 是转换后的编码。这个千万不要弄错了。不然可能还是乱码哦。还有一个参数很有用。就是 -r 这个表示递归转换当前目录下的所有子目录。
* 需要安装 convmv-1.10-1.el5.noarch.rpm
3. 傻瓜型命令行工具 enca
安装:
- yum install enca -y
查看当前文件编码
- enca -L zh_CN ip.txt
- Simplified Chinese National Standard; GB2312
- Surrounded by/intermixed with non-text data
文件格式转换:
- enca -L zh_CN -x utf-8 *
- 检查文件的编码
- enca -L zh_CN file
将文件编码转换为 "UTF-8" 编码
- enca -L zh_CN -x UTF-8 file
如果不想覆盖原文件可以这样,这样:
- enca -L zh_CN -x UTF-8 < file1 > file2
查看编码的方法:
a.
- file filename
b. 在 Vim 中可以直接查看文件编码
- :set fileencoding
来源: http://www.bubuko.com/infodetail-2113041.html