- 论坛徽章:
- 1
|
解决web服务器各种应用的乱码问题,欢迎补充和讨论
Weblogic Server中如何解决中文显示乱码问题
《世界计算机》IT.ICXO.COM ( 日期:2004-09-29 16:07)
--------------------------------------------------------------------------------
由于操作系统、浏览器、数据库、JVM采用的字符集都不一样,基于Weblogic Server开发的应用经常出现中文显示乱码问题,其实在Weblogic Server上运行的WEB应用有很多与字符集有关的设置,下面做一个总结,为了正确处理中文,最好把这些设置都设上。
1. 在JSP文件头加入
- <%@ page contentType=text/html; charset=GBK %>;
复制代码 指定该JSP采用的字符集。
2.在Weblogic.xml文件的中加入:
指定JSP文件中采用的字符集,在JSP文件中的<%@ page contentType=text/html; charset=GBK %>;会覆盖该设置
3.在Weblogic.xml文件的中加入
- compilerSupportsEncoding
- true
复制代码
如果为TRUE,指定在编译JSP文件时,采用在JSP文件中定义的
<%@ page contentType=text/html; charset=GBK %>;或中定义的encoding参数中定义的字符集进行编码,如果为FALSE,则采用JVM中默认指定的字符集进行编码。
4. Weblogic Server需要把HTTP request(GET 和POST)中的数据从它的原始编码转化为Unicode,以便Java servlet API进行处理,为了做这种转换,Weblogic Server需要知道HPPT request中的数据的编码方式。这可以通过在Weblogic.xml的中设置.
5.从ORACLE数据库中检索出来的中文显示不正确时,在这种情况下,如果数据库使用的是中文字符集,并使用的是Type 2 JDBC Driver时,可加入Weblogic.codeset=GBK的属性来解决这个问题。代码如下:
- java.util.Properties props = new java.util.Properties();
- props.put(Weblogic.codeset, GBK);
- props.put(user, scott);
- props.put(password, tiger);
- String connectUrl = jdbc:Weblogic:oracle;
- Driver myDriver = (Driver)
- Class.forName(Weblogic.jdbc.oci.Driver).newInstance();
- Connection conn =
- myDriver.connect(connectUrl, props);
复制代码
6. 如果是采用WTC调用Tuxedo中的服务,在JSP页面中无法正确显示中文,必须使安装Tuxedo的服务器上的NLS_LANG环境变量与数据库中的字符集的设置一样。如后台Oracle数据库中的字符集设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,那么Tuxedo应用服务器上的NLS_LANG环境变量应设置为:
- export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
复制代码 |
|