を追加し、mysql のクエリ時に mysql_query("setcharacter set utf8"); を追加しました。"/> を追加し、mysql のクエリ時に mysql_query("setcharacter set utf8"); を追加しました。">
ホームページ >バックエンド開発 >PHPチュートリアル >PHP クエリ mysql、中国語データ、同じデータをさまざまな方法で追加すると、さまざまなソリューションが表示されます
PHP クエリ mysql、中国語データ、異なる方法で追加された同じデータでも、実際には表示が異なります
こんにちは、
まず私の状況について話させてください。 php の初心者。
---現象
出力ページに を追加し、mysql にクエリを実行するときに
mysql_query("set Character set utf8 ");
mysql_query("SET NAMES 'UTF8'");
一部の漢字は表示できますが、その他の文字は表示できません。
---表示文字化けの経緯とコード
phpmyadmin のデータベースとテキストフィールドはすべて utf8_unicode_ci で設定されています。
phpmyadmin を使用してデータベースに中国語を手動で追加し、
mysql_query("set Character set utf8");
mysql_query("SET NAMES 'UTF8'");
を直接実行しました。 $ rs = $db->query("SELECT * FROM book");
は文字化けを表示します。
---正常に表示されるコードと予期しない結果
mysql_query("set Character set utf8");
mysql_query("SET NAMES 'UTF8'");
$rs2 =$db ->exec("INSERT INTO `lalabook`.`book` (`bookname`, `bookdes`) VALUES ('小兵', '兵小')");
$rs = $db- >query ("SELECT * FROM book");
挿入したデータは正常に表示できます。しかし、phpmyadmin で挿入したデータを表示すると、表示が文字化けしてしまいます。
----
そのため、何が原因でこれが発生したのか、今後データを挿入するためにコードを実行する必要があるのかどうかがわかりません。 phpmyadmin
を使用して挿入できなくなりました------解決策---------------------- --------
phpmyadmin で SET NAMES 'UTF8' を直接実行し、次に SELECT.... 結果はどうなりますか?
phpmyadmin はリンク エンコーディングも設定する必要があります。
------解決策---------
ファイル自体のエンコードに問題はありますか?
------解決策------------------
これは仮想ホストです。すべて正常です。
ユーザーが Utf8 を送信すると、PHP はそれをデータベースに対して操作したり、データベースから取り出したりします。
phpadmin が文字化けするのは、mysql_server エンコーディングがサービスプロバイダーによって一般にラテン語であるためですが、サービスプロバイダーは通常、connect/client/result が utf8 であること、つまり、入出力データのエンコーディングが utf8 であることを保証しているためです。保存時は latin なので、phpadmin に移動して、php 操作が文字化けしていないか確認してください。
さらに、phpadmin で SQL によって挿入されたデータは、php によって読み取られると文字化けします。この問題は、phpmyadmin ページのエンコーディングをチェックしていませんでした。
一言で言えば、設定されたライブラリ、テーブル、カラムのエンコーディングはすべて utf8-unicode-ci になり、その後、データベースに出入りするデータは utf8 エンコーディングを使用します。 phpadmin がデータをチェックするときの文字数はユーザーには影響しません。
------解決策---------
一般的に使用されるエンコーディングは utf8-general-ci
統合する必要があるのはテーブルだけではありません。統合する必要があるのは合計 4 つです
1 つ目は、データベース、テーブル、フィールドを含むデータベースの種類です。
2 番目は、ファイルのエンコーディングです。dw または editplus を使用する場合は、ページのエンコーディングを確認できます。別の変更が必要です。
3 番目は、データベースにアクセスするときの設定が NAMES utf8 に設定されています。
4 番目は、ブラウザーの表示モードです。
これら 4 つの場所は統一する必要があります。統一しないと問題が発生する可能性があります