日期:2014-05-16  浏览次数:20653 次

Linux乱码问题
方法一:    修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030

对于其他用户,也必须相应修改该文件

    使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码

方法二 :     修改/etc/sysconfig/i18n文件

#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"


改为


LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"



Tomcat部署到Linux的乱码问题

默认情况下,Tomcat对请求采用的默认编码是ISO-8859-1, 这样我们提交的汉字被认为是ISO-8859-1的编码,所以在程序中接收时显示乱码 。  在过滤器中调用request.setCharacterEncoding("GBK"),那么Post上来的汉字将被认为是GBK编码,而 Tomcat5对于Get请求上来的编码并不根据过滤器的设定辨认编码方式,默认的依然是ISO-8859-1,所以,即使你的页面使用默认的编码方式进 行编码,然后使用ISO-8859-1进行解码,得到的结果也不对 。

解决方法:
在TOMCAT中的conf/server.xml中的<Connector中添加两个设置
useBodyEncodingForURI="true" //设置POST和GET使用相同编码
URIEncoding="UTF-8" //对URI使用utf-8编码处理

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" 
			   useBodyEncodingForURI="true" 
			   URIEncoding="UTF-8"/>


 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />


在Apache的httpd.conf中需要有以下设置:
AddDefaultCharset UTF-8