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

MYSQL
mysql 常用数据库语句 小练习
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
mysql 字符集的系统变量说明
MySQL 在触发器里中断记录的插入或更新?
将MySQL数据库移植为PostgreSQL
mysql 操作总结 INSERT和REPLACE
linux mysql忘记密码的多种解决或Access denied for user ''root''@''localhost''
运用mysqldump 工具时需要注意的问题
mysql 优化日记
MySQL 字符串函数大全
mysql 截取指定的两个字符串之间的内容
MySQL 备份还原数据库批处理
mysql 数据库中my.ini的优化 2G内存针对站多 抗压型的设置
Mysql 数字类型转换函数
mysql 动态生成测试数据
mysql 显示SQL语句执行时间的代码
mysql 设置查询缓存
MYSQL explain 执行计划
MySQL 有输入输出参数的存储过程实例
巧用mysql提示符prompt清晰管理数据库的方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 67 ::
收藏到网摘: 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);
?>