你的问题可能是数据库连接时未指定字符集:$conn->query("set names utf8");
详细如下:
将中文字符转换一下,可能你的网页编码是ansi非utf-8的:
$w=iconv("gb2312","utf-8",$w);
不过我不确定这样做你能否成功。关于字符有以下几点你看下:
数据库连接时: $conn->query("set names gbk");
数据库的字符集:建议建立数据库时就指定字符集,比如gbk或者utf-8,这样你就没必要为单独的表或者字段指定字符集
网页字符:<META CONTENT="text/html; charset=gbk" >
保持着三者使用的字符集一样,基本能解决你的问题。
当然,在使用ajax时。js传递过来的是utf-8,如果你的php文件和数据库使用的是中文字符集如gbk,gb2312,那么就需要对该值用iconv函数转换下字符集,如:$w=iconv("utf-8","gb2312",$w);
总之,需要这几块的字符集保持一致。
你把 BDE Administrator 的 configuration->drivers->native->SYBASE 的 DLL32 改成 SQLSSC32DLL就行了!
mysql数据库的编码和输出网页的编码不一样,可以把这段编码放在你网页原件PHP执行mysql程序的前面试试:mysql_query("set names utf8"),把你utf8换成你网页的编码,如: gbk,gb2312
同时祝你好运!
老兄啊 当然有问题啦
Connection conn=DBUtilgetConnection();
PreparedStatement ps;
String sql="select from department where dept_name like '%"+name+"%'";
ps = connprepareStatement(sql);
Systemoutprintln("sql---"+sql);
ResultSet rs=psexecuteQuery();
Systemoutprintln(rs);
while(rsnext()){
在这里你使用了预编译prepareStatement,但在在写SQL语句的时候你又用了字符串拼接,如果 你要使用字符串拼接,那么你就直接将这个查询的 *** 作写到一个方法里面,然后将name的值当作参数传递进来。如果你想使用预编译,这里你就应该将name写成,然后用psset(1,value)。我分析你的原因就是,你用了预编译却没有用set()方法赋值,用了字符串拼接却没有参name的值进来,最后like '%"+name+"%'"中的name始终是空的,所以查询不到结果!
以上就是关于php 向数据库发送中文字符无法查询全部的内容,包括:php 向数据库发送中文字符无法查询、我的delphi浏览数据库库不能显示中文、我的php不能显示mysql数据库中的中文等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)