我有个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"
闽公网安备 35060202000074号