Python shell mysql google Windows nginx HTML5 程序员 Ubuntu centos wordpress Android Firefox php 微软 开源 java apache linux linux命令

解决linux系统中查看中文乱码问题分享

Linux系统中查看中文乱码,请问如何解决乱码问题?

解答:

首先我们说下,什么是字符集?简单的说就是一套文字符号及其编码。常用的字符集有:

  • GBK 定长 双字节 不是国际标准,支持的系统不少
  • UTF-8 非定长 1-4字节广泛支持,mysql也使用UTF-8

当然了,字符集还有很多,以后再深入学习这部分内容。

linux系统下的字符集由变量LANG控制。

[root@gagarin ~]# echo $LANG
zh_CN.GB18030
export LANG="ZH_CN.GB18030"(临时变更字符集,重启后失效)
在/etc/sysconfig/i18n文件中,行首添加:(配置永久生效)
LANG="ZH_CN.GB18030"

并把之前的字符集行注释“#”
. /etc/sysconfig/i18n(使修改生效)
echo 'export LANG="ZH_CN.GB18030"' >>/etc/profile(全局系统环境变量配置文件)
source /etc/profile(生效)
echo $LANG(查看结果)

工作场景中使用的脚本,为避免中文乱码,有时候也会在脚本里更改字符集:

#!/bin/sh
export LANG="ZH_CN.GB18030"

ssh工具(SecureCRT)要与linux的字符集保持一致。在SecureCRT的“会话选项”对话框,“终端”→“外观”类里,“字符编码”中的选项要和linux保持一致。linux使用的字符集为“ZH_CN.GB18030”,SecureCRT的选项里设置为“默认”即可。

服务端和客户端字符集对应,乱码就可以有效避免。

  • 中文字符集:ZN_CN.GB18030
  • 字符集变量:LANG
  • 字符集配置文件:/etc/sysconfig/i18n
echo命令(单行文本的追加)
source与.(修改后的变量生效)
export命令(设置环境变量)

延伸阅读

评论