ホームページ >バックエンド開発 >PHPチュートリアル >IEのmysqlストレージで漢字が消える問題、この世界は奇妙すぎる
まず第一に、私のデータベースとページは UTF8 エンコーディングを使用します。 ページのコードは次のとおりです。
header("Content-type:text/html;charset=utf8");
$result=$mysqli->query( "select * from `com_class` where `id`=".$_GET['id']);
if(!($result->fetch_row())){
echo "データが存在しません"; ;
}
$mysqli->query("update `com_class` set `name`='".$_GET["name"]."' where `id`=".$_GET['id']);
echo $_GET['name'];
Google Chrome、Firefoxでは文字化けせずにページが正常に表示され、データベースにも正常にデータが保存されます。
このページは IE9 でも正常に表示され、エラーや文字化けはありません。ただし、データベースはデータを保存せず、表示は空です ($_GET['name'] などの文字化けはありません)。は英語ですが、すべて正常です。データベースも正常に保存できます。
何が起こっているのか教えてください。フロントエンドがブラウザを処理する必要があることは理解できますが、このストレージ データベースはさまざまなブラウザも処理しますか?
update `com_class` set `name`='".$_GET["name"]."' where `id`=".$_GET['id']ステートメントはデータベースで正常に実行されましたか?
update `com_class` set `name`='".$_GET["name"]。 "' where `id ステートメント `=.$_GET['id'] はデータベース内で正常に実行されましたか?
update `com_class` set `name`='".$_GET["name"]."' where `id`=".$_GET ['id'] このステートメントは、データベースの実行は成功しましたか? にあります。
Google と Firefox で正常にデータベースに保存できた場合は、実行が成功したことを意味します
テストとして、受信データを印刷する必要があります
データベースに接続するためのコードと文字セット設定が表示されませんでした
これらのコードは、ここには書きませんでしたが、データが他のブラウザに正常に保存されたことを意味します。接続と SQL は問題ないはずです。
渡したデータは $_GET["id"] と $ だけでした_GET["name" ]
データベースに接続して文字セットを設定するコードが見つかりませんでした
$host= "localhost";
$password=""
受信データは何ですか? それも「参照」されますか?
本当に問題を解決したい場合は、できるだけ多くの情報を提供することが最善です
IE と他のブラウザの違いは、規制を厳密に遵守していることです
これが Taiyi が独占禁止された理由でもあります
IE なので当然です
理由がわかりました、IE9 のアドレスバーは漢字を認識しないので、データを入力するときに encodeURI を使用するだけです