论坛首页 Java企业应用论坛

[提问] 我的程序乱码

浏览 6565 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-12-11  
问题源于:
近期使用hibernate进行持久层开发,但是却出现了乱码问题,后来在jndi的datasource里设置了useUnicode=true;characterEncoding=gbk(我的datasoruce url:jdbc:jtds:sqlserver://localhost:2664/cnhos;instance=future;useUnicode=true;characterEncoding=gbk)后,在jsp中不出现乱码了,但昨天开发了一个servelt的控制类,却出现了诡异的中文乱码问题:时乱码时不乱码!!前面显示两次没有乱码,后面显示有乱码情况!真是晕死!后来在hibernate.cfg.hbm.xml里加了
<property name="useUnicode">true</property>
<property name="characterEncoding">gbk</property>
也不管用!
-------------------------------------------------------
我的开发环境:
jdk:  java version "1.4.2_03"
db: sql server2000,使用jtds jdbc驱程
jsp/servlet包容器: Tomcat5
hibernate: hibernate-2.1.2
   发表时间:2004-12-11  
hibernate 是持久层,你给他的是乱码,它存的就是乱码。
估计你的servlet没有设置request, response编码
0 请登录后投票
   发表时间:2004-12-12  
这个肯定设置了,我看了数据库里面的内容,没错,确实是gbk编码的,即hibernate往里面插入的是正确的。
0 请登录后投票
   发表时间:2004-12-12  
当然,在jsp里都设置了
<%@ page pageEncoding="gbk"%>
<%@page contentType="text/html; CHARSET=utf8"%>
在servelt里都设置了:
request.setCharacterEncoding("gbk");
0 请登录后投票
   发表时间:2004-12-12  
rushfly 写道
当然,在jsp里都设置了
<%@ page pageEncoding="gbk"%>
<%@page contentType="text/html; CHARSET=utf8"%>
在servelt里都设置了:
request.setCharacterEncoding("gbk");


你没有设置servlet的response.contentType
0 请登录后投票
   发表时间:2004-12-12  
设置了!
我晕!难道我连这些初级的错误就会犯?
0 请登录后投票
   发表时间:2004-12-12  
根据你提供的代码,我判断你没设置response
我说错了么?

在servelt里都设置了:
request.setCharacterEncoding("gbk");
0 请登录后投票
   发表时间:2004-12-12  
是的,这点你说错了,我都设置了。
request.setCharacterEncoding("gbk");
response.setContentType("gbk");
0 请登录后投票
   发表时间:2004-12-13  
终于解决了!
是jtds的问题,看来这个论坛用jtds连接sql server2000的人不多啊!
我让我稍稍明白hibernate对多国语言的处理机制:即是不处理,需要上层与jdbc驱程的支持!
0 请登录后投票
   发表时间:2004-12-13  
既然解决了,为什么不把原因贴上来呢?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics