开发环境oracle数据库编码是SIMPLIFIED CHINESE_CHINA.ZHS16GBK  ,测试环境数据库编码是:SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1。测试环境下数据显示在页面上全是乱码!我看了一下数据从数据库中读出来后就是乱码,但是用plsql dev查询表数据都没有乱码!数据从测试环境读取后,用一下方式可以正常显示,但这么做改动量太大,不现实:
String aa= rs.getString("name");
aa=new String(aa.getBytes("iso-8859-1"),"GBK");开发环境和测试环境其他编码:
1、strtus2中配置的编码:<constant name="struts.i18n.encoding" value="UTF-8" />
2、jsp中的编码:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
3、其他位置没有使用filter。
请问怎么解决这个乱码问题?

解决方案 »

  1.   

    对了,中间件是 weblogic 10.
      

  2.   

    在web.xml 中加了filter 无效。
      

  3.   

    你的web.xml中的过滤器设置没起作用,
    你在、strtus2中配置的编码:<constant name="struts.i18n.encoding" value="UTF-8" />
    这你只是做了第一步,还有步要在web.xml中配置
     <filter>
       <filter-name>struts2</filter-name>
       <filter-class>
       org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
       </filter-class>
       <init-param>
       <param-name>struts.i18n.encoding</param-name>
       <param-value>GBK</param-value>
       </init-param>
      </filter>
    你没有配置init-param这项,而且GBK还是UTF-8根据你的jsp页面上的编码格式
    要看详细看
    去看看我的微薄
    http://blog.sina.com.cn/s/blog_7d681d490100z0yz.html