現在の位置: ホーム> 最新記事一覧> PHPおよびMySQLの文字化けコードのトラブルシューティングとソリューション

PHPおよびMySQLの文字化けコードのトラブルシューティングとソリューション

M66 2025-09-23

問題分析

データインタラクションにPHPとMySQLを使用することは、Webサイトまたはアプリケーションを開発する場合に非常に一般的です。しかし、時には、文字化けしたコードの問題に遭遇することがあります。つまり、データベースに保存されているコンテンツがPHPページに文字化けコードとして表示されます。ガベージは、通常、一貫性のない文字エンコード、不適切なデータベース、ページ文字セット、または誤ったデータがトランスコーディングされていることによって引き起こされます。

文字化けのコードの問題の一般的な原因は次のとおりです。

  • データベース文字セットが正しくありません。
  • データベース接続は、文字セットに適切に設定されていません。
  • PHPページは、データベース文字セットと矛盾しています。
  • データは、送信中に正しくエンコードされ、変換されません。

解決

データベースの文字設定設定を確認します

まず、MySQLデータベースの文字セットが正しく設定されていることを確認してください。次のSQLクエリステートメントを使用して、現在のデータベース文字セットを表示できます。

 SHOW VARIABLES LIKE 'character_set_database';

文字セットがUTF-8でない場合、次のように設定されたデータベース文字を変更できます。

 ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;

データベース接続文字セットの設定

PHPでは、データベースに接続するときに文字セットを設定して、文字エンコードが正しく処理されるようにする必要があります。接続文字セットを設定するコードは次のとおりです。

 $connection = new mysqli("localhost", "username", "password", "database");

ページ文字セットがデータベースと一致していることを確認してください

PHPページでは、データベースと同じ文字設定設定が設定されていることを確認する必要があります。ページ上次のコードをタグに追加します。

 <meta charset="utf-8">

データベース操作中のエンコードと変換

データベース操作を実行するときは、データが一貫してエンコードされていることを確認してください。 PHPのMB_CONVERT_ENCODING関数を使用して、データをエンコードおよび変換できます。

 $str = mb_convert_encoding($str, "UTF-8", "GB2312");

サンプルコード

中国のコンテンツを保存するExample_tableというテーブルがあるとします。次のPHPコードは、テーブルの内容をクエリして出力するために使用されます。

 $connection = new mysqli("localhost", "username", "password", "database");

上記のコードを介して、データベースから中国のコンテンツを正しくクエリして表示して、文字化けコードを回避できます。

要約します

ゴミコードの問題は、PHPおよびMySQL開発中の一般的な課題です。データベース文字セット、データベース接続文字セット、ページ文字セット、および必要なエンコード変換の実行を正しく設定することにより、文字化けコードの問題を効果的に解決できます。さらに、これらのソリューションに従うことで、データがページに正しく表示され、ユーザーエクスペリエンスが向上します。