使用phpmyadmin打开后,是乱码,但是查询出来,页面显示是正常的。(mysql使用utf8编码,数据库也是utf8编码。) 前台页面使用的是默认编码 gb2312,链接数据库后,也没有使用 set names。 既然页面正常,那就好办,先把数据查出来,然后改写成sql语句,把sql当作文件来保存。 sql语句被保存后,这个时候还不能用,先把sql文件打开,用editplus另存为 utf8 格式。 用phpmyadmin 新建一个相同结构的数据库(不包括数据) 再使用phpmyadmin,载入这个sql文件,直接运行。 mysql编码转换文件,mysql_dump.php: 复制代码 代码示例:
<?php $link = mysql_connect('localhost', 'root', 'root'); mysql_select_db('temp'); $table = "article"; //指定表名 $query = 'SELECT * FROM '.$table; $result = mysql_query($query); while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $key = array(); $value = array(); foreach ($line as $k=>$v) { $key[] = $k; $value[] = "'".str_replace("'", "'", $v)."'"; } $sql[] = "INSERT INTO `".$table."`(".join(",", $key).") VALUES(".join(",", $value).");\r\n"; } // www.jbxue.com file_put_contents("sql/".$table."_sql.php", $sql); mysql_free_result($result); mysql_close($link); ?>
|