php连接数据库很简单但我们在插入保存数据到mysql数据库时如果不统一页面与数据库编码就可能出现中文乱码问题,下面我来给大家介绍预止此问题发生方法。
php中关于mysql的操作非常简单,然而最近在做一个小工具的时候发现php写入mysql的数据库中出现了中文字符的乱码,这个乱码的问题纠结了我好久,明明英文字符写入正常,但是中文就是乱码!
一开始我感觉是我建立mysql数据库的时候没有设置UTF-8字符集,然而后来我发现即使我设置了这个字符集还是不能解决问题,写入mysql的字符串照样乱码。
解决这个问题其实很简单.
1.在建表的时候设置编码类型为gb2312_chinese_ci.
2.在PHP页面的数据库连接语句加一行mysql_query("SET NAMES 'gb2312'",$link); 例如
代码如下
复制代码
$db_host="localhost";
$db_user="root";
$db_password="password";
$db_name="test";
$link=mysql_connect($db_host,$db_user,$db_password);
mysql_query("SET NAMES 'gb2312'",$link);$db=mysql_select_db($db_name,$link);
$query="select * from user";
$result=mysql_query($query);
写入页面和读取页面都加入这行.这样在MYSQL里面的中文就能正常显示了.
另外种办法修改配置文件my.cnf
代码如下
复制代码
[mysqld]
default-character-set=utf8
重新启动MYSQL改过 这个改了就是把 character_set_server 设成utf8
好了到这些关于php写入mysql中文乱码问题就解决了,当然我们主要是注意页面与数据库之间的编码然后使用mysql_query()进行设置。