为何导出来的数据中文都是乱码?
程序员文章站
2022-04-04 11:52:50
...
为什么导出来的数据中文都是乱码??
下面是备份数据库的代码,但是为什么导出来的数据中文都是乱码??
// 备份数据库
define('IN_FDYU', true);
require('includes/config.php');
// 这里的账号、密码、名称都是从页面传过来的
if (!mysql_connect($db_host, $db_user, $db_pass)) // 连接mysql数据库
{
echo '数据库连接失败,请核对后再试';
exit;
}
if (!mysql_select_db($db_name)) // 是否存在该数据库
{
echo '不存在数据库:' . $db_name . ',请核对后再试';
exit;
}
mysql_query("set names 'utf8'");
$mysql = "set charset utf8;\r\n";
$q1 = mysql_query("show tables");
while ($t = mysql_fetch_array($q1))
{
$table = $t[0];
$q2 = mysql_query("show create table `$table`");
$sql = mysql_fetch_array($q2);
$mysql .= $sql['Create Table'] . ";\r\n";
$q3 = mysql_query("select * from `$table`");
while ($data = mysql_fetch_assoc($q3))
{
$keys = array_keys($data);
$keys = array_map('addslashes', $keys);
$keys = join('`,`', $keys);
$keys = "`" . $keys . "`";
$vals = array_values($data);
$vals = array_map('addslashes', $vals);
$vals = join("','", $vals);
$vals = "'" . $vals . "'";
$mysql .= "insert into `$table`($keys) values($vals);\r\n";
}
}
$filename = $db_name . "_" . date('Y-m-d',time()) . ".sql"; //存放路径,默认存放到项目最外层
$fp = fopen($filename, 'w');
fputs($fp, $mysql);
fclose($fp);
header('location:index.php');
?>
------解决思路----------------------
set names utf8
下面是备份数据库的代码,但是为什么导出来的数据中文都是乱码??
// 备份数据库
define('IN_FDYU', true);
require('includes/config.php');
// 这里的账号、密码、名称都是从页面传过来的
if (!mysql_connect($db_host, $db_user, $db_pass)) // 连接mysql数据库
{
echo '数据库连接失败,请核对后再试';
exit;
}
if (!mysql_select_db($db_name)) // 是否存在该数据库
{
echo '不存在数据库:' . $db_name . ',请核对后再试';
exit;
}
mysql_query("set names 'utf8'");
$mysql = "set charset utf8;\r\n";
$q1 = mysql_query("show tables");
while ($t = mysql_fetch_array($q1))
{
$table = $t[0];
$q2 = mysql_query("show create table `$table`");
$sql = mysql_fetch_array($q2);
$mysql .= $sql['Create Table'] . ";\r\n";
$q3 = mysql_query("select * from `$table`");
while ($data = mysql_fetch_assoc($q3))
{
$keys = array_keys($data);
$keys = array_map('addslashes', $keys);
$keys = join('`,`', $keys);
$keys = "`" . $keys . "`";
$vals = array_values($data);
$vals = array_map('addslashes', $vals);
$vals = join("','", $vals);
$vals = "'" . $vals . "'";
$mysql .= "insert into `$table`($keys) values($vals);\r\n";
}
}
$filename = $db_name . "_" . date('Y-m-d',time()) . ".sql"; //存放路径,默认存放到项目最外层
$fp = fopen($filename, 'w');
fputs($fp, $mysql);
fclose($fp);
header('location:index.php');
?>
------解决思路----------------------
set names utf8
相关文章
相关视频
上一篇: 如何解决php中文字符乱码问题
下一篇: php中比较常用的特殊运算符号和函数
推荐阅读
-
解决SpringMvc后台接收json数据中文乱码问题的几种方法
-
PowerDesigner生成数据库时的列中文注释乱码问题的设置方法
-
JSP MySQL插入数据时出现中文乱码问题的解决方法
-
Orcale 数据库客户端PL/SQL 中文乱码的问题解决方法
-
解决Flask读取mysql数据库的中文乱码问题
-
PowerDesigner生成数据库时的列中文注释乱码问题的设置方法
-
解决SpringMvc后台接收json数据中文乱码问题的几种方法
-
ajax获取数据中文乱码问题最简单的完美解决方案
-
关于TP3.2框架读取Sql server中文字段数据以及处理乱码的一些小心得
-
Oracle客户端与plsql查询数据乱码修改成中文的快速解决方法