.
对于乱码问题,最根本的是需要确切知道是在那一步操作(client-->servlet/jsp(other components)-->db-->(other components)servlet/jsp-->client)的时候乱的。
下面是我们一位工程师对常见中文问题的总结,供参考:
l 情况一:JSP 文件中的中文提示信息不能正确显示
解决方法:在JSP 文件中加入
<%@ page contentType=“text/html; charset=GBK“ %> 可以解决这个问题。
l 情况二:JSP文件中包含中文提示信息时,不能正确编译
解决方法:在weblogic.xml文件的<jsp-descriptor>部分加入
<jsp-descriptor>
<jsp-param>
<param-name>compilerSupportsEncoding</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</jsp-param>
</jsp-descriptor>
可解决这个问题。
l 情况三:从数据库中检索出来的中文显示不正确时,在这种情况下,如果数据库使用的是中文字符集,并使用的是Type 2 Jdbc Driver时,对于Weblogic 而言,当使用其提供的oci driver时,可加入Weblogic.codeset=GBK的属性可解决这个问题
l 情况四:在JSP文件之间传递中文时,如果不能正确传递中文数据,可在web.xml文件的<web-app></web-app>中间加入
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GBK</param-value>
</context-param>
可解决这个问题。
注意context-param的位置按下列顺序"(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*)"
l 情况五:为使浏览器能正确显示中文,应在 HTML <HEAD> 部分增加:
<meta http-equiv="Content-Type" content="text/html" charset="gbk">