struts向数据库插入中文数据乱码问题

时间:2022-06-24 06:42:13

问题:从jsp页面向数据库添加记录中文乱码,英文正常-----编码的问题弄得晕头转向···

解决方向:

一、myeclipse里面各文件的编码格式不一样?

windows--preferences--general--workspace--gbk;

windows--preferences--general--content Types--Text--默认编码gbk;

找每一个编写的jsp、xml文件   头部保证gbk;

最后不管用····


二、百度了下,想想向数据库中插入是不是数据库编码有问题?

mysql里查找my.ini没有,看资料要重新配置一个int文件,有点难搞···最终失败,但是找到了

show variables like 'character%';

set character_set_database=gbk等等,命令行改了半天,发现傻了,关了重开一个dos窗口又回去,想想可能也没法改,每次mysql启动都默认加载的默认配置;

也找了些资料在myeclipse里面改----BaseDao里面把建立数据库连接的url后面加上?useUnicode=true&characterEncoding=UTF-8,我要用gbk,这什么鬼····?characterEncoding=gbk,还是木有用啊←_←!

最后发现蛋疼,我直接看一下insert语句到底是啥不就知道是哪的编码问题·····于是打印出insert里面的参数发现就是乱码????,终于确定了跟数据库没关系


三、那就只能是myeclipse里面我写的东西有问题啦

问题集中到user.getName()取页面中输入的中文为什么乱码?

又开脑洞:1、难道是浏览器有编码方式和我写的东东冲突了  导致乱码?

那真的GG了···换浏览器--不行,仔细想想,如果浏览器问题,那显示数据也应该不行,显示是正常的  没毛病!

    2、解决了问题的方法

getName()要取jsp页面提交的数据,而得到数据就乱码了,范围很小了,就只能是提交有问题,post问题么?post到action的问题么?

经查询,post提交方式可以通过设置编码方式正确识别中文,----<constant name="struts.i18n.encoding" value="gbk"/>  成功显示中文!!估计是提交到action

struts.xml中action的编码问题,struts-core里面org.apache.strtus2里default.properties中关于编码默认为UTF-8,至此了解,虽然全部页面都gbk也不行·····

    3、那换成get呢?

果断又不行了·········乱码     查资料,有人说post可以指定编码,get不起作用,一是get通过tomcat  web.xml中默认编码作用,二是get传递也对uri进行了编码,要转换编码

算了  我安静的用post玩一会先