我有个 servlet 处理含有中文的表单 , 用 new String(s.getBytes("ISO8859-1"), "GBK"); 转码 , 在 tomcat 5.5 中没有问题 , 但是移植到 weblogic 8.1" name="description" />
MILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我有个servlet处理含有中文的表单, 用new String(s.getBytes("ISO8859-1"), "GBK");转码, 在tomcat5.5中没有问题,但是移植到weblogic8.1后,转码后还是乱码, 哪位大侠知道怎么解决? --------------------------------------------------------------- 由于操作系统、浏览器、数据库、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文件的 如果为TRUE,指定在编译JSP文件时,采用在JSP文件中定义的 <%@ page contentType="text/html; charset=GBK" %>或 4. Weblogic Server需要把HTTP request(GET 和POST)中的数据从它的原始编码转化为Unicode,以便Java servlet API进行处理,为了做这种转换,Weblogic Server需要知道HPPT request中的数据的编码方式。这可以通过在Weblogic.xml的 --------------------------------------------------------------- 以上是对于一般情况的处理,接着还有2项是比较特殊的方法: 和你实际应用有关: 1.从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); 2. 如果是采用WTC调用Tuxedo中的服务,在JSP页面中无法正确显示中文,必须使安装Tuxedo的服务器上的NLS_LANG环境变量与数据库中的字符集的设置一样。如后台Oracle数据库中的字符集设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,那么Tuxedo应用服务器上的NLS_LANG环境变量应设置为:export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"