你的问题可能是数据库连接时未指定字符集:$conn-query("set names utf8");
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站建设、原州网络推广、微信平台小程序开发、原州网络营销、原州企业策划、原州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供原州建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
详细如下:
将中文字符转换一下,可能你的网页编码是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+MySQL出现中文乱码的原因。
1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码。
2. 使用MYSQL中创建表、或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码.
3. PHP页面的字符集与数据库的编码不一致。
4. PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PHP页面编码不一致。
5. 用户提交的HTML页面编码,和显示数据的页面编码不一致 ,就肯定会造成PHP页面乱码.
二、解决中文乱码:
1. 网页编码设置。一般在HTML代码中的文件头html中加入属性:
meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″
保证,网页是"utf-8"编码。
2. PHP代码设置。在php代码的开始部分加入以下代码:
header(”Content-type: text/html;charset=utf-8″);
且要求保存的文件编码方式是utf-8,这样就保证了该文件也是utf-8编码。
3. 数据库中表的字段中存储中文的部分,要设置为utf8_general_ci类型。
4.PHP在连接数据库操作时,要设置操作的字段类型为utf8,设置方法如下:
mysql_connect(’localhost’,'user’,'password’);mysql_select_db(’db’);mysql_query(”set names utf8;”); //**设置字符集***
解决乱码有几种方式:
在读取数据库的时候设置连接编码:mysql_query("set
names
utf8");
在读取数据库的php文件的头部加:header("Content-type:text/html;charset=utf-8");
php文件不是utf8格式的编码,需要转化。用notpad++文本编辑器打开php文件,点击菜单中的“格式”,查看是否是“以utf8
无bom格式编码”,不是的话请转成此格式。
html格式的在头部加上:meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8"
/
你看看你的是哪一种情况,都对比做的一下,还不行在问我。