hibernate练习中,向数据库中插入数据,汉字乱码,,请教各位原因和解决方法
解决方案 »
- 事件监听器的实现
- 请问本科毕业生做java方面开发需要掌握些什么?
- 多个页面调用同一个Action并返回调用页的问题
- eclipse 中怎么调试 jsp页面 给建议就给分 说的详细多给 分不够我在加分 在线等
- 请大家帮忙看看:
- 1200以上/天:北京精通Struts的朋友想捞外块的进
- 怎么设置<frameset>框架网页的高度?默认是屏幕那么高.如果我想有二个屏幕那么高,怎么设置?谢谢
- jsp中javabean的使用时机
- 郁闷死了,有代码,大家帮助我看看吧~
- 为什么我从创建的动态结果集里面查询到的结果(字段值)都是0X开头的一堆类似于16进制?
- 关于表格变色 我的这个jQuery为什么冲突了??
- 有一个表格forEach遍历的记录 想取得每一列值的总和 怎么实现
2.看你用的是什么数据库,如果是MySQL的话在Hibernate里设置一下mysql的方言。
3.还有就是你要把数据库的配置文件,建立的数据库,数据表,页面和IDE开发工具都设置成一样的编码。
4.用代码转一下,如果你用struts1的话
byte[] buffert=request.getParameter("页面传过来的内容").getBytes("ISO-8859-1");
String 输入数据库的内容=new String(buffert,"UTF-8");乱码出现的原因多种多样,你要不断的去尝试不同的解决办法这样才可以。因为大部分每个人碰到的乱码问题都不是一两个方法就能解决的。别人的方法有可能不适合你的程序。
造成乱码有很多情况
需要一步一步去测试。
就像楼上说的,MySql 是最容易出现编码错误的。
它需要你建表的时候,建立编码方式。比如还有,你读取表单数据的时候,是不是读出的也是乱码呢?
如果是,就需要改变下你.html 页面或者.jsp 页面的编码方式咯。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>再或者,从表单读取出来的数据是正常的,然后放进数据库的却是乱码
这时候就看看hibernate 的编码设置方式有没有问题。虽然我说的这些,目前还不能帮你实际的解决问题,但这是一种解决方法的思路。
问题分几步。
1.确认汉字在入库之前是否为乱码,可以用System.out输出一下看看。
2.lz的环境是什么?如果只是普通控制台程序的话,插入数据库之前的汉字应该没问题。那很可能是Mysql的连接串编码问题,CharactorEncoding参数没有设置或设置不正确,我一般用utf-8.
3.mysql5.0的字符编码可以设置到字段的级别,先看看字段是否支持中文。如果支持,才能调CharactorEncoding