Php解决读取数据库时显示乱码

利用php读取数据库时如果页面与数据库编码不一致中文就会有乱码了,但我们可以通过set names来强制统一编码.

首先需要修改文件的类型,我的utf8 提交资料的时候,需要在mysql_query上加这么语句话,代码如下:

mysql_query("SET NAMES 'utf8'",$db);

然后数据库的编码也得是utf8_general_ci,然后在读取的时候也加如下代码:

mysql_query("SET NAMES 'utf8'",$db);

然后就不会实现乱码了,以下代码是是实例:

  1. <?php
  2. mysql_query("SET NAMES 'utf8'",$db);
  3. $sql = "select * from wd_sql";
  4. $query=mysql_query($sql);
  5. $i = 1;//www.phpfensi.com
  6. while ($result = mysql_fetch_array($query)) {
  7. $x = $i++;
  8. echo "第".$x."位<br>";}
  9. ?>

总结一下这个乱码问题的解决方法:

1.确认所有页面都统一使用同样的编码,强烈建议用utf-8;

2. 在用mysql_query作查询时无论是写入数据到mysql还是从mysql提数据出来,设置mysql_query(“set names utf8″)..,连接数据库时就设置,而且不要把这时的“utf8”写成“utf-8”,这点很重要。