ホームページ  >  記事  >  バックエンド開発  >  エクスポートした中国語のデータが文字化けするのはなぜですか?

エクスポートした中国語のデータが文字化けするのはなぜですか?

WBOY
WBOYオリジナル
2016-06-23 13:44:242296ブラウズ

以下はデータベースをバックアップするためのコードですが、エクスポートされたデータがすべて中国語で文字化けしているのはなぜですか? ?
// バックアップ データベース
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。



set names utf8

$mysql = "set charset utf8;rn";これを $mysql = "set names utf8;rn"; に変更します。ありがとうございます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。