以前一直使用windows 操作系统工作后来迁移到ubuntu上但是之前在windows下保存的文档(默认编码gb2312)到ubuntu上全部乱码(默认编码utf-8),记得可以在ubuntu上给gedit(文本编辑器)更改字符集顺序,现在觉得太麻烦了索性把文本编码全改成utf-8算了 ~~!!
1 cat 文本乱码,enca 查看文本编码为gb2312,可使用iconv来转换编码
- $ cat haproxy-log.path.txt
- ־
- vi /etc/sysconfig/syslog
- SYSLOGD_OPTIONS="-m 0"
- syslogd
- /etc/init.d/syslog restart
- ȻͿԿ
- $ enca haproxy-log.path.txt
- Simplified Chinese National Standard; GB2312
- CRLF line terminators
- $ iconv -f GB2312 -t utf8 haproxy-log.path.txt
- #以下为输出
- vi /etc/sysconfig/syslog
- 把SYSLOGD_OPTIONS="-m 0" 改成 SYSLOGD_OPTIONS="-r -m 0"
- 让syslogd接受远程的日志输出
- /etc/init.d/syslog restart
- 然后就可以看到日志输出了
- #输出结束
2 iconv --help
- $ iconv --help
- 用法 iconv [选项...] [文件...]
- 转换给定文件的编码。
- 输入/输出格式规范
- -f, --from-code=名称 原始文本编码
- -t, --to-code=名称 输出编码
- 信息
- -l, --list 列举所有已知的字符集
- 输出控制
- -c 从输出中忽略无效的字符
- -o, --output=FILE 输出文件
- -s, --silent 关闭警告
- --verbose 打印进度信息
- -?, --help 给出该系统求助列表
- --usage 给出简要的用法信息
- -V, --version 打印程序版本号
- 长选项的强制或可选参数对对应的短选项也是强制或可选的。
3 enca/econv 可以更方便的转换文本编码
- #安装enca
- apt-get install enca
- #查询单个文件的编码
- enca haproxy-log.path.txt
- #转换单个文件的编码
- enca -L none -x utf-8
- enconv haproxy-log.path.txt
- #以下为输出
vi /etc/sysconfig/syslog
把SYSLOGD_OPTIONS="-m 0" 改成 SYSLOGD_OPTIONS="-r -m 0"
让syslogd接受远程的日志输出
/etc/init.d/syslog restart
然后就可以看到日志输出了
#输出结束 - #当然还可以批量转换
- find haproxy/ -name '*.txt' | xargs enconv
扩展
本文转自 dongnan 51CTO博客原文链接http://blog.51cto.com/dngood/726746