PHPで表示されるデータベースの中国語文字化けを解決する方法

PHPz
リリース: 2023-04-21 09:32:14
オリジナル
935 人が閲覧しました

開発中にPHPを使用してデータベースを呼び出すと、中国語の文字化けの問題がよく発生します。この問題は通常、データベースのキャラクタ セットが PHP のキャラクタ セットと異なるか、PHP がデータベース内の中国語の文字を正しく解析しないことが原因で発生します。この記事では、PHPでの漢字文字化けの解決方法を紹介します。

1. データベース キャラクタ セットの設定

1.1 データベース キャラクタ セットの表示
コマンド ライン インターフェイスで次のコマンドを入力して、データベースの現在のキャラクタ セットを表示します。

show variables like 'character%';
ログイン後にコピー
1.2 データベースの文字セットを設定する

中国語の文字化け問題を解決するには、データベースの文字セットを utf8 に設定する必要があります。 mysql では、次のコマンドを使用して設定できます。

ALTER DATABASE `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ログイン後にコピー
ここで、

database_name は、設定するデータベースの名前です。ここでは、データベースのデフォルトの文字セットは utf8 に設定されています。 MySQL では、utf8 が最も一般的に使用される文字セットであり、ほとんどの言語の文字をサポートできます。

1.3 データテーブルの文字セットを設定する

mysql では、各データテーブルが独立して文字セットを設定することもできます。次のコマンドを使用して、テーブルの文字セットを utf8 に設定できます。

ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ログイン後にコピー
ここで、

table_name は、設定するデータ テーブルの名前です。ここではデータテーブルの文字セットをutf8に設定しています。このようにして、データベース内のすべてのテーブルで utf8 文字セットが使用されます。

2. PHP 文字セットを設定します

2.1 PHP デフォルト文字セットを設定します

php.ini ファイルを開き、「mbstring. language」パラメータを見つけて、その値を次のように設定します。 「CN」。以下に示すように:

mbstring.language=CN
ログイン後にコピー
2.2 PHP ランタイム文字セットを設定する

PHP では、ランタイム文字セットも設定する必要があります。次のコードを通じて php の文字セットを設定できます:

header('content-type:text/html;charset=utf-8');
ログイン後にコピー
このコードは、php の出力文字セットを utf-8 に設定します。

3. データベース内の漢字を呼び出す

3.1 データベースリンクの文字セット

PHP では、データベースにリンクするときに文字セットを設定する必要があります。コードは次のとおりです。

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('连接数据库失败!');
mysql_select_db($dbname, $conn);
mysql_query("SET NAMES 'utf8'");
ログイン後にコピー
このうち、$dbhost、$dbuser、$dbpass、$dbname は、それぞれデータベースのホスト アドレス、ユーザー、パスワード、データベース名です。ここでは、mysql_query() 関数を通じてデータベースの文字セットを utf8 に設定します。

3.2 クエリ文字セットの設定

クエリに中国語の文字が含まれる場合は、クエリ文字セットを設定する必要があります。次のコードを使用してクエリ キャラクタ セットを設定できます。

mysql_query("set character_set_client=utf8");
mysql_query("set character_set_results=utf8");
ログイン後にコピー
    テスト結果
  1. データベース キャラクタ セットと PHP キャラクタ セットを構成した後、データベース内の中国語をテストできます。テーブルを作成し、そこに中国語の文字を挿入し、次のコードを使用してテーブルを表示できます。
  2. $result = mysql_query("SELECT * FROM table_name");
    while($row = mysql_fetch_array($result)){
        echo $row['field_name'];
    }
    ログイン後にコピー
これにより、中国語の文字がページ上に正しく表示されます。

5. まとめ

上記の手順により、PHP 表示データベースの中国語文字化けの問題を解決できます。中国語の文字を正しく表示するには、データベース キャラクタ セットと PHP キャラクタ セットの両方を utf8 に設定し、クエリ キャラクタ セットとリンク キャラクタ セットを正しく設定する必要があります。このようにして、開発時に漢字を使用し、正しく表示することができます。

以上がPHPで表示されるデータベースの中国語文字化けを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!