ホームページ  >  記事  >  バックエンド開発  >  PHP が中国語データをデータベース テーブルに書き込めない場合はどうすればよいですか?

PHP が中国語データをデータベース テーブルに書き込めない場合はどうすればよいですか?

王林
王林オリジナル
2021-09-27 18:23:392173ブラウズ

php が中国語データをデータベース テーブルに書き込めない問題の解決策: 1. mysql で使用される文字セットを utf8 に変更します; 2. php ファイルのエンコードに使用される文字セットを utf-8 に変更します; 3 . フロントページの変更 使用する文字コードがutf-8に変更されます。

PHP が中国語データをデータベース テーブルに書き込めない場合はどうすればよいですか?

#この記事の動作環境: Windows10 システム、php 7&&mysql 5.0、thinkpad t480 コンピューター。


PHP を学習する過程で、中国語データをデータ テーブルに挿入できず、フロントエンド Web ページがデータベースから取得した中国語データを正しく表示できない状況に遭遇することがあります。この問題が発生した場合は、mysql で使用される文字セットを utf8 に変更し、PHP ファイルのエンコードに使用される文字セットを utf-8 に変更し、フロントエンド Web ページで使用される文字エンコードを utf-8 に変更する必要があります。問題が解決できるように。

具体的な手順は次のとおりです:

1. MySQL インストール ディレクトリで MySQLInstanceConfig.exe を実行し、デフォルトのエンコーディングを utf8 に設定します;

「最良」を選択することを忘れないでください。 「Support For Multilingualism」を選択し、同時に下のドロップダウンリストから「utf8」を選択します。

設定が完了したら、my.ini ファイルの「default-character-set」の設定を確認してください。 MySQL インストール パスの下にあります。この時点では utf8 に設定する必要があります。そうでない場合は、default-character-set=utf8

2.1 に設定します。データベースの作成時に utf8 エンコーディングを指定します:

CREATE  DATABASE  database_name
CHARACTER  SET  “utf8”
COLLATE  “utf8_general_ci”;

2.2 データ テーブルの作成時に utf8 エンコーディングを指定します:

CREATE  TABLE  table_name
(
Column_name  datatype,
......
)ENGINE=InnoDB  DEFAULT  CHARSET=utf8;

3. ファイル エンコーディングを utf-8 に設定します;

PhpStorm を使用している場合、デフォルトのファイル エンコーディングは utf-8 です。変更する必要はありません

4. 使用するページを設定します 文字セットは utf-8 です:

5. データを操作する前に、まず mysql_query('set names を実行する必要があります) utf8'); 操作を実行し、データに対してクエリ、更新、挿入などを実行します。

6. 最後に、クライアントのソース データで使用される文字セットとクエリ結果の文字セットを gbk に設定します:

SETcharacter_set_client =gbk; //MySQL コマンド ラインから中国語を直接挿入します。 client データを保存するとき、データは文字化けしません

SET Character_set_results =gbk; //MySQL コマンドライン クライアントから返される中国語データは文字化けしません

PS: 上記の内容はMySQL Server 5.0 の場合、MySQL Server 5.6 では、使用されるデフォルトの文字エンコーディングは utf8

推奨学習:

php training

以上がPHP が中国語データをデータベース テーブルに書き込めない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。