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命令(设置环境变量)