php 向数据库发送中文字符无法查询?
php保存的utf-8,求解 展开
你的问题可能是数据库连接时未指定字符集:$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" HTTP-EQUIV="Content-Type" />
保持着三者使用的字符集一样,基本能解决你的问题。
当然,在使亩胡用ajax时。js传递过来的是utf-8,如果你的php文件和数据库使用的是中文字符集如gbk,gb2312,那么就需要对该值用iconv函数转换下字符集,如弊差:$w=iconv("utf-8","gb2312",$w);
总之,需要这几块的字符集保持一致。
php保存的utf8,数据库那边是utf8_general_ci,还没用html
数据库连接指定字符空间了吗?
$conn->query("set names gbk");
在php文件最顶部加入:
header("Content-type: text/html; charset=utf-8");
2015-04-04 · 知道合伙人软件行家
提供旦圆几点供参考:
一、在用PHP进行数据库查询的时候,指定数据库的编码格式:
mysql_query("set names utf8");
二、检查PHP代码保存文件格式,应宽神该是以 utf8 格式保存。
三、设置html,设置语言编码为 utf8 格式。
以上三个都需要设置一致,模巧塌且都是 utf8。
我直接用php测试的,没用html传,而且php保存的是utf8