Skip to main content

在飞腾环境中使用vi命令查看/var/log/messages时,出现中文字符乱码问题

在飞腾环境中使用vi命令查看/var/log/messages时,出现中文字符乱码问题

问题现象

采用飞腾CPU的“擎天EF860”服务器,内核将主板信息打印到“/var/log/messages”文件中后,可能显示为“�\x93\x8e天EF860”。这时,使用vi(m)命令打开“/var/log/messages”文件时,vi(m)命令会按照默认的“fileencodings”列表依次尝试解析“/var/log/messages”文件中的字符编码。然而,受主板信息日志行异常编码影响,最终解析的文件编码将是“latin1”,此时vi(m)窗口将无法正确显示messages文件中的中文字符。

解决方法

在用户主目录的“.virc”文件或系统的“/etc/virc”文件中追加一个文件编码集的配置,不要包含latin1。然后使用vi命令查看“/var/log/messages”文件,即可正常显示中文字符。若使用的是vim命令,请修改“.vimrc”文件。

  • 用户级配置:请执行如下命令。
echo "set fileencodings=ucs-bom,utf-8,default" >> ${HOME}/.virc
  • 全局配置:请执行如下命令。
sudo echo "set fileencodings=ucs-bom,utf-8,default" >> /etc/virc

:::warning 修改文件编码集只能保证打开“/var/log/messages”后,可以正确解析部分进程打印的中文日志,但无法解析“�\x93\x8e天EF860”这段异常编码。 :::