当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 把mysql中的乱码变成正常的编码

MYSQL
轻松掌握如何从命令行启动mysqld服务器
教你快速掌握怎样在Windows下升级MySQL
解析:安装 MySQL时如何选择安装软件包
解析:快速的掌握 MySQL支持的操作系统
MySQL环境下导入数据时是否需要禁用索引
配置高可用性的MySQL服务器负载均衡群集
使用ERWin进行基于MySQL数据库的物理设计
数据库应用经验:如何简单安装MySQL数据库
DBA应当了解的MySQL客户端程序启动选项
将MySQL 5.0下的数据导入到MySQL 3.23中
讲解MaxDB数据库和MySQL数据库的主要差别
实例讲解如何利用crontab定时备份MySQL
个人经验总结:完全卸载MySQL数据库5.0
如何在Unix系统环境下安装MySQL数据库
适宜做简单搜索的MySQL数据库全文索引
教你在MySQL 5.0以上版本中配置主从库
经验总结:修改MySQL默认密码的具体步骤
将后台数据从Berkeley的文件DB转到MySQL
详细介绍查询优化技术在现实系统中的运用
MySQL数据库中对前端和后台进行系统优化

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 75 ::
收藏到网摘: n/a

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

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

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

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

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

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

<?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("'", "&#39;", $v)."'";
  }
  $sql[] = "INSERT INTO `".$table."`(".join(",", $key).") VALUES(".join(",", $value).");\r\n";
 }
 file_put_contents("sql/".$table."_sql.php", $sql);

 mysql_free_result($result);
 mysql_close($link);
?>