把mysql中的乱码变成正常的编码

Filed under: 数据库 |
Posted on

使用phpmyadmin打开后,是乱码,但是查询出来,页面显示是正常的。(mysql使用utf8编码,数据库也是utf8编码。)

前台页面使用的是默认编码 gb2312,链接数据库后,也没有使用 set names

既然页面正常,那就好办,先把数据查出来,然后改写成sql语句,把sql当作文件来保存。

sql语句被保存后,这个时候还不能用,先把sql文件打开,用editplus另存为 utf8 格式。

用phpmyadmin 新建一个相同结构的数据库(不包括数据)

再使用phpmyadmin,载入这个sql文件,直接运行。或者是把sql语句复制到phpmyadmin中运行也行(但是文件太大的时候就太慢了。)

  1. <?php
  2.     $link = mysql_connect('localhost', 'root', 'root');
  3.     mysql_select_db('temp');
  4.  
  5.     $table = "article"; //指定表名
  6.     $query = 'SELECT * FROM '.$table;
  7.     $result = mysql_query($query);
  8.  
  9.     while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
  10.         $key = array();
  11.         $value = array();
  12.         foreach ($line as $k=>$v) { 
  13.             $key[] = $k;
  14.             $value[] = "'".str_replace("'", "&#39;", $v)."'";
  15.         } 
  16.         $sql[] = "INSERT INTO `".$table."`(".join(",", $key).") VALUES(".join(",", $value).");\r\n";
  17.     } 
  18.     file_put_contents("sql/".$table."_sql.php", $sql);
  19.  
  20.     mysql_free_result($result);
  21.     mysql_close($link);
  22. ?>
  阅读次数: 1528

 曰:沙发空缺,还不快抢?

留下点什么吧