问题:从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玩一会先