ホームページ  >  記事  >  バックエンド開発  >  PHP の Mysqli エラー メッセージが文字化けする

PHP の Mysqli エラー メッセージが文字化けする

WBOY
WBOYオリジナル
2016-07-06 13:51:371392ブラウズ

PHPのmysqliを使用してデータベース接続を作成する際のエラーメッセージが文字化けして表示されます。

コードは次のとおりです:

リーリー

Mysql がまだインストールされていません、mysql がインストールされていないときに mysqli のエラー メッセージを確認したいだけです。結果は次のようになります:

PHP の Mysqli エラー メッセージが文字化けする

ChromeでもIE11でもコードが文字化けします。

検査ツールは、http 応答ヘッダーの文字セットが utf-8 であり、Chrome と IE11 のデフォルト設定も utf-8 であることを示しています。さらに、php ファイル自体と、Apache および PHP のデフォルトのエンコード設定はすべて utf-8 です。

画像内の文字化けコードはmysqli_connect_error()で取得した文字化けコードと一致しているため、現時点ではmysqli自体の問題であると推測されています。

エンコーディングを検出して得られた結果は、エラー メッセージのエンコーディングも utf-8 であることを示しています。 mb_detect_encoding($conn->connect_error)

どうやって解決しますか?


悪気はありませんが、多くの回答者が質問の説明を注意深く読まずに結論を急ぐため、重要なことを繰り返すことにしました:

MySQL がインストールされていません!

MySQL がインストールされていません!

MySQL がインストールされていません!

MySQL がインストールされていない場合、mysqli でどのようなエラー メッセージが表示されるかを知りたいだけです。しかし、このエラーメッセージは実際には文字化けしているため、この問題が発生します。


進捗状況: コンソールで php インタープリターを使用して実行すると、以下の図に示すように、正しいエラー メッセージが取得され、中国語であることがわかります。

PHP の Mysqli エラー メッセージが文字化けするこのエラー メッセージは、Windows システムのネットワーク通信関連モジュールによって提供されるため (以前は、プロキシ サーバーの構成が正しくない場合、このようなエラー メッセージがログによく記録されていました)、したがって、Win10 がこの原因であると視覚的に推定されます。 。

問題はまだ解決されていません。中国語ですがGB2312、GBK、GB18030で表示させてみましたがやはり文字化けしましたが、文字化けの内容は違いました。

返信内容:

PHPのmysqliを使用してデータベース接続を作成する際のエラーメッセージが文字化けして表示されます。

コードは次のとおりです:

リーリー

Mysql がまだインストールされていません

、mysql がインストールされていないときに mysqli のエラー メッセージを確認したいだけです。結果は次のようになります:

PHP の Mysqli エラー メッセージが文字化けする

ChromeでもIE11でもコードが文字化けします。

検査ツールは、http 応答ヘッダーの文字セットが utf-8 であり、Chrome と IE11 のデフォルト設定も utf-8 であることを示します。さらに、php ファイル自体と、Apache および PHP のデフォルトのエンコード設定はすべて utf-8 です。

画像内の文字化けコードは

で取得した文字化けコードと一致しているため、現時点ではmysqli自体の問題であると推測されています。

mysqli_connect_error()エンコーディングをチェックして得られた結果は、エラー メッセージのエンコーディングも utf-8 であることを示しています。

どうやって解決しますか? mb_detect_encoding($conn->connect_error)

悪気はありませんが、多くの回答者が質問の説明を注意深く読まずに結論を急ぐため、重要なことを繰り返すことにしました:


MySQL がインストールされていません!

MySQL がインストールされていません!

MySQL がインストールされていません!

MySQL がインストールされていない場合、mysqli でどのようなエラー メッセージが表示されるかを知りたいだけです。しかし、このエラーメッセージは実際には文字化けしているため、この問題が発生します。

進捗状況: コンソールで php インタープリターを使用して実行すると、以下の図に示すように、正しいエラー メッセージが取得され、中国語であることがわかります。


このエラー メッセージは、Windows システムのネットワーク通信関連モジュールによって提供されるため (以前は、プロキシ サーバーの構成が正しくない場合、このようなエラー メッセージがログによく記録されていました)、したがって、Win10 がこの原因であると視覚的に推定されます。 。

PHP の Mysqli エラー メッセージが文字化けする問題はまだ解決されていません。中国語ですがGB2312、GBK、GB18030で表示させてみましたがやはり文字化けしましたが、文字化けの内容は違いました。

あなたの環境では、PHP を使用して中国語を出力するのが普通ですか? を追加しましたか?

Chrome のエンコードを手動で変更してみてください?

コンピューターで試したところ、次の 3 つの結論に達しました: 1. PHP は最終的にブラウザーの純粋な HTML にフィードバックするため、PHP ページは HTML の文字セットを使用してページを UTF8 エンコーディングに設定しませんでした。 2. 返されたものはまったく utf8 ではありません。たとえば、返された gbk ではページで utf8 を設定しましたが、ブラウザは GB2312 でした。設定に問題があり、それが見つからなかった可能性があります。あなたのコンピュータではこれに関連する情報が表示されません。ただ質問を終了してください。盲目的に全員に試してもらう必要はありません。

ブラウザのエンコードを設定すれば良いはずです、mysqliのせいではないはずですし、書き方も間違っています

インストールした MySQL データベースのエンコーディングはデフォルトで GBK になっています。フロントエンド、バックエンド、データベースのエンコーディングを確実に統合するために、MySQL のエンコーディングを変更することをお勧めします。実行前に set names utf 8 をクエリして、バッファーの内容が utf8 形式であることを確認します

作者の質問にはMySQLがインストールされていないことが分からなかったので削除しました。
しかし、実際には mysqlnd 拡張機能が原因であるはずですPHP の Mysqli エラー メッセージが文字化けする

ハンドシェイク中に文字セットが返されるため、まず MySQL をインストールして、文字列 utf8 を指定して試してみることをお勧めします。

データベース接続設定にエンコード設定を追加します

mysqli_query('set name UTF8');

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