重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP与数据库的编码应一致
成都创新互联专注于庐江企业网站建设,响应式网站开发,商城网站制作。庐江网站建设公司,为庐江等地区提供建站服务。全流程按需求定制网站,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
1. 修改mysql配置文件my.ini或my.cnf,mysql最好用utf8编码
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-storage-engine=MyISAM
在[mysqld]下加入:
default-collation=utf8_bin
init_connect='SET NAMES utf8'
2. 在需要做数据库操作的php程序前加mysql_query("set names
'编码'");,编码和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那mysql编码就是 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" /
你看看你的是哪一种情况,都对比做的一下,还不行在问我。
你要保证你程序中指定的数据库编码和数据库本身的编码是一致的,
要存中文的话最好用utf-8编码,同时php的文件编码也用utf-8;
CREATE TABLE test (
`pid` int(11) NOT NULL AUTO_INCREMENT,
`version` varchar(50) NOT NULL,
`recorddate` datetime NOT NULL,
PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;
建表的时候指定编码和字符集,一般就不会有问题了。
我也曾遇到过这个问题,折腾了好几个月终于找到原因了:
如下:
$query = "INSERT INTO biao(topid,title,link,body) VALUES(0,'这时标题','this my link','这里是身体');";
mysql_query(set names utf8);
mysql_query($query,$conn);
原因就是少了 mysql_query(set names utf8); 这一句 ,
并且这一句一定要加在 查询语句(mysql_query($query,$conn);)的前面;
希望能够帮到你,一起进步
你数据库的第二个字段的字段类型是 int型或者其他数值型不是字符串类型。
这个要看你是什么形式去传递到PHP页面,如果你HTML内容不是用utf8编码的话,传过去的时候就会产生乱码.如果你是用JS去传值过去的话,编码统一还是会出现这个问题,请用JS+escape函数解决.传到PHP的时候到网上找一个PHP+unescape反译...