linux centos6中文乱码思路梳理

在linux环境下操做,常常遇到中文乱码的状况,下面整理下本身遇到问题的解决思路:java

出现位置:tomcat日志;linux

出现效果:中文显示问号:shell

解决思路:数据库

一、输入echo $LANG打印当前使用的系统语言,或输入locale直接查看所有:tomcat

LANG=en_US.UTF-8    // LC_*的默认值,是最低级别的设置,若是LC_*没有设置,则使用该值。相似于 LC_ALL。
LC_CTYPE="en_US.UTF-8"    //用于字符分类和字符串处理,控制全部字符的处理方式,包括字符编码,字符是单字节仍是多字节,如何打印等。是最重要的一个环境变量
LC_NUMERIC="en_US.UTF-8"    // 非货币的数字显示格式
LC_TIME="en_US.UTF-8"    // 时间和日期格式
LC_COLLATE="en_US.UTF-8"    //环境的排序和比较规则
LC_MONETARY="en_US.UTF-8"    // 货币格式
LC_MESSAGES="en_US.UTF-8"    //提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES类似,但若是该参数一旦设置,则LC_MESSAGES参数就会失效。LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。
LC_PAPER="en_US.UTF-8"    //默认纸张尺寸大小
LC_NAME="en_US.UTF-8"    //姓名书写方式
LC_ADDRESS="en_US.UTF-8"    //地址书写方式
LC_TELEPHONE="en_US.UTF-8"    //电话号码书写方式
LC_MEASUREMENT="en_US.UTF-8"    //度量衡表达方式
LC_IDENTIFICATION="en_US.UTF-8"    //对locale自身包含信息的概述
LC_ALL=    //它是一个宏,若是该值设置了,则该值会覆盖全部LC_*的设置值。注意,LANG的值不受该宏影响。服务器

若是没有须要安装,须要下载安装。编码

(1)、安装全部与中文支持相关的包日志

# yum -y groupinstall chinese-support排序

(2)、修改字符编码配置文件字符串

# vi /etc/sysconfig/i18n

修改后内容以下:

LANG="zh_CN.UTF-8"

SUPPORTED="zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"

SYSFONT="latarcyrheb-sun16"

区分en_US.UTF-8与zh_US.UTF-8,分别默认显示为英文和中文模式。

二、排除系统语言后,查看终端的设置:

例如xshell,属性>终端>编码一项,是否设置为Uncod(UTF-8)

三、上述都没有问题后,考虑tomcat自身的设置:

在tomcat>bin>catalina.sh(window环境查看catalina.bat)文件中,echo "Using CATALINA_BASE:   $CATALINA_BASE"前面加上:

JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8"

从新启动tomcat,再观察日志的中文显示状况

四、上述都操做事后仍是存在中文问题,那么就要考虑项目自己,例如:

(1)数据库的编码;

(2)打包前请检查文件的编码;

 

上述操做没有顺序,可根据猜想去试图查看。操做中,比较支持在同一步骤相同环境下多个项目或服务器比对的方式,找到问题的速度会更快...

相关文章
相关标签/搜索