免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7694 | 回复: 2
打印 上一主题 下一主题

[WebLogic] weblogic 乱码问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-05 21:49 |只看该作者 |倒序浏览
公司原来有一套应用程序环境是用java,jsp开发的web应用,架在websphere,tomcat上都没有问题。今天我把他架在weblogic上面后,前台页面的中文都没有问题,可是从前台新插入的数据如果是中文,则从数据库中查出来的东西就会是乱码!我改过WEB-INF\web.xml文件加上GBK了,还是不行,不知道weblogic是不是有想tomcat下的一个配置文件如con/server.xml。请高手们指点一下迷津。谢谢!

论坛徽章:
0
2 [报告]
发表于 2007-03-06 11:39 |只看该作者
weblogic有没有可以设置编码的地方?

论坛徽章:
0
3 [报告]
发表于 2007-03-07 00:18 |只看该作者
问题搞定了,如其他人有这样问题请参见一下(转贴):

Weblogic Server中如何解决中文显示乱码问题


由于操作系统、浏览器、数据库、JVM采用的字符集都不一样,基于Weblogic Server开发的应用经常出现中文显示乱码问题,其实在Weblogic Server上运行的WEB应用有很多与字符集有关的设置,下面做一个总结,为了正确处理中文,最好把这些设置都设上。

1. 在JSP文件头加入
<%@ page contentType="text/html; charset=GBK" %>
指定该JSP采用的字符集。

2.在Weblogic.xml文件的<jsp-descriptor>中加入:
<jsp-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</jsp-param>
指定JSP文件中采用的字符集,在JSP文件中的<%@ page contentType="text/html; charset=GBK" %>会覆盖该设置

3.在Weblogic.xml文件的<jsp-descriptor>中加入
<jsp-param>
<param-name>compilerSupportsEncoding</param-name>
<param-value>true</param-value>
</jsp-param>
如果为TRUE,指定在编译JSP文件时,采用在JSP文件中定义的
<%@ page contentType="text/html; charset=GBK" %>或<jsp-descriptor>中定义的encoding参数中定义的字符集进行编码,如果为FALSE,则采用JVM中默认指定的字符集进行编码。

4. Weblogic Server需要把HTTP request(GET 和POST)中的数据从它的原始编码转化为Unicode,以便Java servlet API进行处理,为了做这种转换,Weblogic Server需要知道HPPT request中的数据的编码方式。这可以通过在Weblogic.xml的<context-param>中设置.
<input-charset>
<resource-path>/</resource-path>
<java-charset-name>GBK</java-charset-name>
</input-charset>

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:Weblogicracle";
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"


7.先进入weblogic控制台:点击左边树中的console在出现的preference项目。修改其语言。修改你自己想要的就可以了。祝你成功!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP