以下はデータベースをバックアップするためのコードですが、エクスポートされたデータがすべて中国語で文字化けしているのはなぜですか? ?
// バックアップ データベース
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 . ' 確認して再試行してください '
mysql_query("set names 'utf8'"); $mysql = "set charset utf8;rn";
$q1 = mysql_query("show tables");
{
$table = $t[0]; = mysql_query ("show create table `$table`");
$sql = mysql_fetch_array($q2);
$mysql['Create Table']
$q3 = mysql_query(" select * from `$table`");
while ($data = mysql_fetch_assoc($q3))
{
$keys = array_keys($data);
$keys = array_map('addslashes', $keys);
$キー = join('`,`', $keys);
$vals = array_map('addslashes', $vals);
$vals = join("' ,'", $vals);
$vals = "'" . $vals);rn";
}
}
$filename = $db_name . date('Y-m-d',time() ) . ".sql"; // デフォルトでプロジェクトに保存されるストレージ パス
$fp = fopen($filename, 'w');
fputs($fp, $mysql); ;
header('location:index.php');
?>
ディスカッションへの返信 (解決策)
$mysql .= "`$table`($keys) の値($vals) ); rn";
Windows 環境のはずです
テキストファイルの内容は utf-8 でエンコードされており、BOM ヘッダーがありません。エディタで開くと文字化けします。これは正常です。
なのでどうすればいいですか?
エクスポートは正常ですが、エクスポートしたファイルをデータベースにインポートすると、データ内の漢字がすべて文字化けします
set names utf8
$mysql = "set charset utf8;rn";これを $mysql = "set names utf8;rn"; に変更します。ありがとうございます。