中国語文字化け問題の主な原因は、文字エンコーディング設定の問題です。
まず、MySQL データベースをインストールするときに、文字エンコーディングを正しく選択する必要があります。安全のために utf-8 を選択するのが最善です。 。インストール中に設定が正しくない場合は、mysql のインストール ディレクトリを見つけて、my.conf 構成ファイルの文字設定を変更し、1 つは mysqll の下に、もう 1 つはサーバーの下にあるファイルを開きます。
PHP ページの中国語の文字化けが発生する場合、つまりデータがデータベースからクエリされていない場合、または HTML ページの静的部分が文字化けしている場合は、ヘッダー ("content-type: text /html; charset=utf8") を使用してページのエンコーディングを設定します。
使用できるコマンド:
1>データベースエクスポートコマンド: mysql -u root -p データベース名> d:sql.sql
2>データベースインポートコマンド:source D:sql.sql
3>mysql クエリ文字セット設定コマンド: show variables like '%set%'; 4>mysql setcharacter set: set name utf8
[注意] mysql でエクスポートしたデータベースにはメモ帳を使用しないでください, Microsoft のメモ帳のエンコードでは BOM なしではなく utf-8 が使用されるため、問題が発生します。
データベースで見つかった値に文字化けが見られる場合は、そのデータが別のバージョンのデータベースからエクスポートされ、独自のデータベースにインポートされたかどうかを確認します。 mysqlデータベースサーバーのバージョンが異なるため、データを直接インポートする際に問題が発生する可能性があります。たとえば、私の mysql データベースのデータはローカルで中国語を実行しても問題ありませんが、それを Sina SAE に移植すると、mysql サーバーのバージョンと異なるため、文字は選択されていますが、phpmyadmin を使用して SQL データをインポートします。インポート中は UTF-8 になっており、phpmyadmin で中国語を表示するのは問題ありませんが、ページを開くと、データベースからチェックされたすべてのデータが疑問符など文字化けします。
オンラインの解決策は、各 SQL ステートメントを実行する前に mysql_query("set name utf8") を使用することですが、最後の理由は、mysql5.0 以降、mysql 関数が基本的に放棄されていることです。ただし、その拡張関数 mysqli, mysqli_query($link,'utf8'); を使用して設定すると、中国語の文字化けの問題は解決されます。
この間に別の問題が発生します。データをサーバーにアップロードせず、Web ページから中国語の情報を再追加すると、insert とステートメントを使用すると正常に表示されます。データベースに直接中国語を挿入しても、データはまだ正常に表示できません。 具体的な問題は不明ですが、データベースのバージョンが異なることが原因であると推定されています。
の一般的な解決策は、データベースのエンコーディング設定が正しく、ページのコーディング設定が正しく、PHP データがデータベースに挿入されるときに厳密に処理されることです。