開発中にPHPを使用してデータベースを呼び出すと、中国語の文字化けの問題がよく発生します。この問題は通常、データベースのキャラクタ セットが PHP のキャラクタ セットと異なるか、PHP がデータベース内の中国語の文字を正しく解析しないことが原因で発生します。この記事では、PHPでの漢字文字化けの解決方法を紹介します。
1. データベース キャラクタ セットの設定
1.1 データベース キャラクタ セットの表示
コマンド ライン インターフェイスで次のコマンドを入力して、データベースの現在のキャラクタ セットを表示します。
show variables like 'character%';
中国語の文字化け問題を解決するには、データベースの文字セットを utf8 に設定する必要があります。 mysql では、次のコマンドを使用して設定できます。
ALTER DATABASE `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
database_name は、設定するデータベースの名前です。ここでは、データベースのデフォルトの文字セットは utf8 に設定されています。 MySQL では、utf8 が最も一般的に使用される文字セットであり、ほとんどの言語の文字をサポートできます。
mysql では、各データテーブルが独立して文字セットを設定することもできます。次のコマンドを使用して、テーブルの文字セットを utf8 に設定できます。
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
table_name は、設定するデータ テーブルの名前です。ここではデータテーブルの文字セットをutf8に設定しています。このようにして、データベース内のすべてのテーブルで utf8 文字セットが使用されます。
php.ini ファイルを開き、「mbstring. language」パラメータを見つけて、その値を次のように設定します。 「CN」。以下に示すように:
mbstring.language=CN
PHP では、ランタイム文字セットも設定する必要があります。次のコードを通じて php の文字セットを設定できます:
header('content-type:text/html;charset=utf-8');
PHP では、データベースにリンクするときに文字セットを設定する必要があります。コードは次のとおりです。
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('连接数据库失败!'); mysql_select_db($dbname, $conn); mysql_query("SET NAMES 'utf8'");
クエリに中国語の文字が含まれる場合は、クエリ文字セットを設定する必要があります。次のコードを使用してクエリ キャラクタ セットを設定できます。
mysql_query("set character_set_client=utf8"); mysql_query("set character_set_results=utf8");
$result = mysql_query("SELECT * FROM table_name"); while($row = mysql_fetch_array($result)){ echo $row['field_name']; }
以上がPHPで表示されるデータベースの中国語文字化けを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。