非常に奇妙なことに、データベースのクエリステータスはすべて utf8 です。
挿入した PHP にヘッダーステートメント uft8 を追加し、抽出したものも utf8 なので、すべて通常の中国語文字ですが、mysql に保存されているものは文字化けします文字。
挿入したPHPでセット名utf8を宣言して同じ漢字を格納するとmysqlは別の文字化けコードになり、ページから取り出したPHPも文字化けします
mysqlにセット名gbkを直接入力すると、他には何も起こりません (どちらも utf8 に宣言されている) 場合、データベースは正常になりますが、抽出されたコードは引き続き文字化けします。php を挿入することでセット名 gbk が宣言されている場合、挿入時にエラーが表示されます。漢字
php ファイル自体のエンコードは何ですか? gbkですか
基本的にデータベース設計のエンコーディングに問題があります。データベーステーブルフィールドのエンコーディングをリセットしてください
データベースの下位バージョンのデータエンコーディング方式はgbkであるようです。私がインストールした最新バージョンでは必要ありません。エンコード方式を gbk に変更するには
PHP 自体は GBK ですが、データベースが UTF8 でエンコードされていることが原因であるはずです。
コマンドラインを使用する場合、CMD ウィンドウの mysql クライアントは GBK エンコーディングを使用するため、セット名 gbk を宣言する必要があります
MySQL を呼び出すクライアントとして PHP を使用する場合、セット名 utf-8 が必要です
その他つまり、クライアントはどのようなエンコーディングが必要かを宣言する必要がありますが、テーブルを設計する場合、通常は UTF-8 エンコーディングが使用されます。
どのような操作を行う場合でも、セット名の文字セットは必要です
対話中に文字セット宣言を省略するようにデータベース構成を調整することもできるかもしれませんが、プログラムでは文字化けのリスクがあります
コマンドラインでは、CMD ウィンドウの mysql クライアントは GBK エンコーディングを使用するため、セット名 gbk を宣言する必要があります
MySQL を呼び出すクライアントとして PHP を使用する場合、セット名 utf-8 が必要です
言い換えると、クライアントとは何ですか? エンコードについては、どのようなエンコードが必要かを宣言する必要がありますが、テーブルを設計する場合は、通常、UTF-8 エンコードが使用されます。