ホームページ > バックエンド開発 > PHPチュートリアル > 非常に奇妙なmysqlの文字化けコード、素晴らしいですね

非常に奇妙なmysqlの文字化けコード、素晴らしいですね

WBOY
リリース: 2016-06-23 13:27:24
オリジナル
1032 人が閲覧しました

非常に奇妙なことに、データベースのクエリステータスはすべて 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 エンコードが使用されます。



確かに、試してみたらcmdウィンドウが文字化けしてしまい、phpMyAdminをインストールしてリンク文字セットをutf8_ unicode_ciに変更したら正常に表示されました。文字化けした
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート