mysql 查询中文问题,分全给

来源:百度知道 编辑:UC知道 时间:2024/09/24 08:30:01
search.jsp?w=中文
返回结果正确
search.jsp?w=中
出错

只要是查询单个中文字就出错;两个中文字和英文都成功
utf8编码

encodeURI(url) 这个就可以了!
这是 js的代码
你可以用js 处理了再提交

你程序里面的语句可能是:
select * from table where w like "%中%"

你的的MYSQL数据库要么是4.10以下版本,要么字符集是选择的latin。

是这样的情况吗?

在英文字符集下,一个汉字占用两个字节,而且计算机无法区分哪个字节是汉字的开始、哪个自己是汉字的结束。那么当对汉字进行匹配的时候就会出错:

对于查询一个汉字的情况,要查的串中没有这个汉字也可能被搜索到,因为串里面的可能某两个汉字前后的各一个字节组合了刚好是要查的这个汉字。比如“中”的ASCII码是D6D0,另外一个*D6、和一个D0*的汉字在一起时,就会满足“中”的搜索。

对于多个汉字,其实也可能类似的原因发生误会,搜索到不包含相应汉字的内容,只是多个汉字巧合的概率小些,你还没有遇到而已。

解决的办法就是设置字符集为UTF-8等,这些字符集下机器把一个汉字的多个字节当整体处理,就能避免这样的问题。

但是你现有的数据库和应用程序要全部改为UTF-8工作量是很大的,所有的JSP脚本文件要用UTF8编码保存,里面的meta要设置编码为UTF-8,数据库字符集要修改为UTF-8,然后要把数据库中现有数据进行转换。

mysql里的数据类型是什么?