【高分】请教高手struts+hibernate+mysql字符集的问题

yuannan 2010-12-03 07:35:54
我把jsp xml java代码都设置成了utf-8, mysql中的表也是utf8.

我在实现用户注册功能时出错了,Consumer这个类有个address属性,
网页提交表单后,显示注册成功,但是保存到Mysql数据库中的中文全部变成了“???”
从数据库读出也是“???”

但是我在数据库中直接插入中文,然后代码中读出来,没有出错,还是中文。
这个到底是怎么回事啊--

顺便问下在action中怎么设置request属性呢?

DAO中保存用户方法如下

public void save(Consumer u) {
log.debug("saving Consumer instance");
Transaction transaction= getSession().beginTransaction();
try {
Date date = new Date();
Timestamp theTime = new Timestamp(date.getTime());
u.setCreateTime(theTime);
u.setUpdateTime(theTime);
getSession().save(u);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
transaction.commit();
getSession().flush();
getSession().close();
}
}
...全文
170 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
java_dream_fly 2010-12-04
  • 打赏
  • 举报
回复
连接数据库时有没有设置字符编码格式啊
jdbc:mysql://localhost:/test?characterEncoding=gb2312;
wangshiyang 2010-12-04
  • 打赏
  • 举报
回复
找到mysql的安装文件my.ini,你只要把my.ini中client section 部分的字符编码改成gbk就可以了
default-character-set=utf-8

这个问题不是java和tomcat的错误,是数据库本地配置的错误,其实你在安装的时候有个字符集选择的,
lz应该是直接默认的设置了吧,希望可以解决你的问题!
Jclick 2010-12-04
  • 打赏
  • 举报
回复

<constant name="struts.i18n.encoding" value="UTF-8"></constant>

struts.xml里加这句没?
G_beginner 2010-12-04
  • 打赏
  • 举报
回复
你应该看看到底是哪一步引起的编码问题,jsp提交到action里时在action输出一下收到的数据,如果没问题就应该是持久化到数据库里的问题 我一般mysql用gbk编码 而且struts.xml 和 hibernate的配置文件都有解决中文乱码的配置的 一点点小经验 希望对您有用

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧