锁定老帖子 主题:[提问] 我的程序乱码
精华帖 (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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-12-11
hibernate 是持久层,你给他的是乱码,它存的就是乱码。
估计你的servlet没有设置request, response编码 |
|
返回顶楼 | |
发表时间:2004-12-12
这个肯定设置了,我看了数据库里面的内容,没错,确实是gbk编码的,即hibernate往里面插入的是正确的。
|
|
返回顶楼 | |
发表时间:2004-12-12
当然,在jsp里都设置了
<%@ page pageEncoding="gbk"%> <%@page contentType="text/html; CHARSET=utf8"%> 在servelt里都设置了: request.setCharacterEncoding("gbk"); |
|
返回顶楼 | |
发表时间:2004-12-12
rushfly 写道 当然,在jsp里都设置了
<%@ page pageEncoding="gbk"%> <%@page contentType="text/html; CHARSET=utf8"%> 在servelt里都设置了: request.setCharacterEncoding("gbk"); 你没有设置servlet的response.contentType |
|
返回顶楼 | |
发表时间:2004-12-12
设置了!
我晕!难道我连这些初级的错误就会犯? |
|
返回顶楼 | |
发表时间:2004-12-12
根据你提供的代码,我判断你没设置response
我说错了么? 在servelt里都设置了: request.setCharacterEncoding("gbk"); |
|
返回顶楼 | |
发表时间:2004-12-12
是的,这点你说错了,我都设置了。
request.setCharacterEncoding("gbk"); response.setContentType("gbk"); |
|
返回顶楼 | |
发表时间:2004-12-13
终于解决了!
是jtds的问题,看来这个论坛用jtds连接sql server2000的人不多啊! 我让我稍稍明白hibernate对多国语言的处理机制:即是不处理,需要上层与jdbc驱程的支持! |
|
返回顶楼 | |
发表时间:2004-12-13
既然解决了,为什么不把原因贴上来呢?
|
|
返回顶楼 | |