发现Hibernate中文问题又一解决方法
2008-01-05 10:11:38 来源:WEB开发网核心提示:开发构架:Hibernate2.1.6+SPRing1.2.2+Sturts1.1;数据库:MySQL4.024-nt;容器:Tomcat5.0.28;开发工具:JbuilderX、Eclipse3.0OS:window200就在开发的时候问题出现了:在JBX下开发,用的Tomcat 是自带的4.06,发现Hibern
开发构架:Hibernate2.1.6+SPRing1.2.2+Sturts1.1;
数据库:MySQL4.024-nt;
容器:Tomcat5.0.28;
开发工具:JbuilderX、Eclipse3.0
OS:window200
就在开发的时候问题出现了:在JBX下开发,用的Tomcat 是自带的4.06,启动后测试中文没有任何问题(而且在jsp页面里面也没有加“ <%@ page contentType="text/Html;charset=gb2312" %> ”),中文的存取都没有乱码现象;
这样就把JBX下开发的移在Eclipse3.0下,用的Tomcat是下载的5.0.28,启动Tomcat测试发现,Insert 数据是没乱码,但存数据库里面Select数据时,中文时乱码的!这里很多人会想到应该不会的!其实我也是这么想的,但事实就是这样,我查可资料如这:http://www.cnblogs.com/josson/archive/2005/03/16/119619.aspx
说的不错,我就按照这样作了,加了,但是还是不行,我改为:jdbc:mysql://localhost/hibstruts?useUnicode=true&characterEncoding=GB2312;而且Filter的配置也该成了GB2312;还有对每个JSP页面也加了<%@ page contentType="text/html;charset=gb2312" %> ,最后测试了一上午还是不行;我只能用了
str=row[1].toString(); //取出中文
System.out.println("________=========Tname1 :"+str);
dbbyte1 = str.getBytes("iso-8859-1"); //转换字符集
str = new String(dbbyte1);
System.out.println("________=========Tname2 :"+str); //正常的中文
不会吧,天哪!这样处理中文会把我累死啊!
下午,我就从比较低级的问题入手想了!是不是问题没有这么复杂?... ...
原来代码就换了个Tomcat,竟然如此的问题,是不是Tomcat的问题,不会吧,应该5.0.28版本不比4.0.6
低级吧!哦,是不是中文问题支持有所改变那!对,把在Eclipse下开发的Tomcat换为JBX自带的4.0.6试试!
马上换用Tomcat4.0.6,所以的中文问题立即消失了!MD,这么让人大干的问题,竟然这么解决的!
唉,不知自己的思维逻辑问题,还是Tomcat的发展逻辑问题啊!看来以后还得从实践入手,不要相信技术的发展逻辑。
[]
更多精彩
赞助商链接