服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

tomcat向weblogic移植的中文乱码问题

我有个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文件的中加入:

 

encoding

gbk

 

指定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中设置.

/

gbk

 

---------------------------------------------------------------

 

以上是对于一般情况的处理,接着还有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"

扫描关注微信公众号