hibernate 创建mysql数据库其中一个表乱码,其他表正常 10C

我用创建了一个数据库,hibernate自动生成表。其他表都是正常的。只有一个表是插入中文是乱码。
配置文件我也设置了:
jdbc:mysql://localhost:3306/qew?useUnicode=true&characterEncoding=UTF-8

过滤器也写了:
HttpServletRequest httprequest = (HttpServletRequest)request;
HttpServletResponse httpresponse = (HttpServletResponse) response;
httprequest.setCharacterEncoding("UTF-8");
httpresponse.setCharacterEncoding("UTF-8");

创建数据库的时候我也指定了编码:
create table .... defalut character set utf8 collate utf8_genneral_ci;

其他的表都正常,只有一个表插入中文是乱码。
如果我将数据库的字符集改为GBK,会出现其他表正常,这乱码这张表只能插入数字,字母,插入中文的时候不是乱码,而是插不进去。

3个回答

自己调试一下,是request得倒的参数已经乱码,还是入库后导致的乱码。
看你的描述,目测入库前就是乱码了,可能前端不是utf-8编码.

jxplus
jxplus 回复江丶小鱼: 如果本地可以的话,那可能是三楼说的,tomcat配置不一样。
3 年多之前 回复
caodaoxin555
江丶小鱼 之前都不是乱码,插入之后才乱码,这个我敢肯定的。在我本地的tomcat上是没问题的,一上公司服务器,就出这个情况了。
3 年多之前 回复

打个断点确认一下是不是再插入数据的最后一步也就是调sql的时候,还是正常汉子,或者已经是乱码了。有可能在你调用sql或者说调用hibernate的save之前就已经乱了

你修改下tomcat目录下的conf文件夹下的 server.xml文件 ,如图 图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问