ホームページ > バックエンド開発 > PHPチュートリアル > PHPにおける中国語文字化け問題の解析と解決策

PHPにおける中国語文字化け問題の解析と解決策

WBOY
リリース: 2016-06-23 13:30:55
オリジナル
965 人が閲覧しました

中国語文字化け問題の主な原因は、文字エンコーディング設定の問題です。

まず、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 データがデータベースに挿入されるときに厳密に処理されることです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート