xiaowei8782088 发表于 2018-5-7 13:46:04

ubuntu 字符集与乱码

  以前一直使用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

  扩展
  字符集与编码
页: [1]
查看完整版本: ubuntu 字符集与乱码