日期:2014-05-17  浏览次数:20768 次

Jsp链接mysql数据库,不能进行中文查询
各位同学大家好,我现在用的是ImHosted.com的jsp主机,不过网页上传完之后,不能进行中文的查询,类似select id from table where name='朋友',这样的查询,返回的记录为空。而我在本地电脑调试,一切正常,我在网上查的是,需要设置my.ini文件,但是我给他们客服发邮件,他们说:We would like to inform you that to can change the default character set from your cpanal --> phpmyadmin。可是在phpmyadmin中怎么设置啊?

我数据库用的是utf8_unicode_ci,jsp页面编码全都是utf8的,数据库连接也加上了useUnicode=true&characterEncoding=utf8,请问如何来解决?非常感谢各位。

------解决方案--------------------
哪里有同学!
不能进行中文查询,怀疑是乱码在作怪!你可以查查!
------解决方案--------------------
应该是编码的问题,你尝试下加个过滤器试试看!
------解决方案--------------------
中文乱码导致。
既然本地是ok的,那么,只要设置一下服务器mysql的字符集即可。服务器的数据库、数据表都设置为和你本地一样的

------解决方案--------------------
你在程序得到的中文字符为???? 那不是数据库问题了.
你在程序里转下看看.
URLEncoder.encode("页面中文", "UTF-8")
------解决方案--------------------
很有可能是你JSP页面用的编码方式不对,建议改为GB2312试试看
Java code

request.setCharacterEncoding("GB2312");

------解决方案--------------------
在执行查询前,先执行“set names utf8”
------解决方案--------------------
又是一个乱码问题,杯具
------解决方案--------------------
在编写的时候,应该做到开发环境、数据库、JSP页面的编码方式保持一致,
你用show variables like 'character\_set\_%';这个命令查看数据库编码方式
如果设置的是UTF-8,应该显示出了filesystem是binary外,其他的都应该是UTF-8,
如果不是,建议重新安装MySQL,安装时一定要选择UTF-8编码方式(有一个设置界面,选择第三个,自主选择编码方式)。
------解决方案--------------------
在执行查询前,先执行“set names utf8”
------解决方案--------------------
解决乱码问题,有几种途径
1. 安装mysql时在选择编码的时候设置
2. 配置连接的时候在url中设置
3. 过滤器
......
------解决方案--------------------
过滤器应该可以解决,对所有的中文请求参数进行编码转换