ホームページ >バックエンド開発 >PHPチュートリアル >MySQL+PHP 文字化けの原理と解決策_PHP チュートリアル
MySQL+PHP で文字化けが発生する理由:
◆ MySQL データベースのデフォルトのエンコーディングが PHP Web ページと一致しない場合、MySQL でテーブルを作成するときに文字化けが発生する可能性があります。 MySQL では、エンコーディングの種類を選択できます。このエンコーディングが Web ページのエンコーディングと一致しない場合、MySQL のコードが文字化けする可能性があります。
◆ MySQL でテーブルを作成するときに、エンコーディングを選択できます。このエンコーディングが Web ページのエンコーディングと一致しない場合、MySQL が文字化けする可能性もあります
◆ ユーザーが送信したページのエンコーディングがデータを表示するページのエンコーディングと一致しない場合、間違いなく次のような問題が発生します。 PHP ページが文字化けする
◆ ユーザーがデータを入力するページが big5 コードであるが、ユーザー入力が表示されるページが gb2312 である場合、これにより 100% PHP ページが文字化けします
◆ PHP ページの文字セットが正しくありません。
◆ PHP 接続の MySQL データベース ステートメントで指定されたエンコーディングが正しくありません。
注:
MySQL のバージョンが一貫していないことが文字化けを引き起こすのではないかと疑っている人は多いですが、このガイドを読めばそうは思わなくなると思います。
通常、一部の Web サイトで表示されるテキストには、複数のエンコーディングが使用されている場合があります。たとえば、繁体字中国語の文字は、big5 エンコーディング、utf-8 エンコーディング、または gb エンコーディングである可能性があります。つまり、簡体字中国語でエンコードされた繁体字中国語の文字もあれば、繁体字中国語でエンコードされた簡体字中国語の文字もあるということを理解する必要があります。
簡素化されたエンコードを使用して Web ページを作成している場合、エンコードは GB2312 に設定されています。香港および台湾からの訪問者が繁体字中国語の情報を送信すると、コードが文字化けする可能性があります。解決策:
Web サイトのエンコードを utf-8 に設定します。これは世界中のすべてのキャラクターと互換性があります。
ウェブサイトが長期間運営されており、古いデータが多く、簡体字中国語の設定を変更できない場合は、ページのエンコードを GBK に設定することをお勧めします。 GBK と GB2312 の違いは次のとおりです。 GBK は GB2312 文字よりも多くの文字を表示できます。簡略化されたコードで繁体字を表示したい場合は、GBK を使用するしかありません。
MySQL+PHP で文字化けが発生する理由が明確に理解できたので、解決策は難しくありません。
MySQL+PHP によって生成される文字化けコードの解決策:
MySQL をインストールするためのコードを変更できない場合、多くの友人は Web サイトを構築するために仮想ホストを購入しており、MySQL のインストール コードを変更する権利を持っていません。この手順は、後でインストールする限り、手順が正しければ文字化けの問題を解決できる可能性があるためです。
データベースのエンコードを変更します。データベースのエンコードが間違っている場合は、PHPmyadmin で次のコマンドを実行できます:
テーブルのエンコーディングを変更します:
フィールド エンコーディングを変更します:
この状況が簡単に解決できる場合は、ページを確認してソース ファイルの文字セットを変更するだけです。
この場合は、ページの文字セットを変更するだけです。
データベースに接続するステートメント内。
http://www.bkjia.com/PHPjc/446662.html