注册 登录
编程论坛 J2EE论坛

关于MYSQL语句查询中文字符的问题

宁愿不爱 发布于 2006-12-30 20:18, 1060 次点击
最近写了一个JSP网页该网页的主要功能是 实现网站 站内查询
使用的数据库是MYSLQ
SQL语句如下:
select * from table_name where binary name like 'name%' //name是一个字符串变量,该值是有用户输入的
在查询数据库的时候 英文 或数字 的字符 可以查找到相应的记录 但是中文的却找不到
但是在CMD下进入MYSQL里 进行查询却可以查到想要查找的记录
如: select * from table_name where binary name like '王%' 就可以出现一些相应的记录

大家有谁遇到过这种情况 或者 知道怎么解决的 告诉我好么 谢谢
7 回复
#2
宁愿不爱2006-12-30 21:34

晕 半天了 怎么连看的人都没有啊
都做什么去了 各位斑竹 大大门 拉选票去了么

#3
千里冰封2006-12-31 09:16
又是编码的问题,改改编码试试
#4
angeloc2006-12-31 10:24
你可以把代码贴上来,帮你看看!
#5
wyq032006-12-31 15:29

MYSQL在4.1之前对中文的支持一直不是很好,4.1以后有了改善.
在DOS下可以查找到中文,但在MYSQL自带的设计器下如(MySQL Query Browser)中你看到的则是乱码!
其实有过开发经验的,一看就明白.现在送你两个字符转换类(以前项目用的);
根据所以用的数据库的编码方式而用.
public static String iso8859togbk(String in) throws Exception{

String re=null;
try {
re = new String(in.getBytes("iso8859-1"), "gbk");
}
catch (Exception e)
{
throw new Exception("error in convert charset");
}
finally{
return re;
}
}
public static String iso8859togb2312(String in) throws Exception{

String re=null;
try {
re = new String(in.getBytes("iso8859-1"), "gb2312");
}
catch (Exception e)
{
throw new Exception("error in convert charset");
}
finally{
return re;
}
}

#6
宁愿不爱2006-12-31 20:19
i
#7
宁愿不爱2006-12-31 20:24

我前面也以为问题是出在编码的问题上 
但是在进数据库 和出库的时候都做了转换啊  
代码涉及到好多文件  传上来不太方便

#8
宁愿不爱2007-01-01 18:55

此问题已经解决  所有的网业我用filter 进行了过滤 设置中文编码
在Tomcat\config\server.xml 里的 Connector容器里 设置了URIEncoding="GBK" 后就OK了

1