ホームページ >バックエンド開発 >PHPチュートリアル >ローカルテストは正常に動作するのに、解決策のアイデアをアップロードした後にデータベースに挿入すると文字化けが発生するのはなぜですか?

ローカルテストは正常に動作するのに、解決策のアイデアをアップロードした後にデータベースに挿入すると文字化けが発生するのはなぜですか?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 13:48:24969ブラウズ

正常にアップロードされた後、ローカル テストでデータベースに文字化けした文字が挿入されるのはなぜですか?
php+sql はフロントエンドとバックエンドの両方に utf8 を使用し、ローカルではすべて正常に動作し、アップロード後に正常に読み込まれますが、中国語の文字が挿入されます。ページ全体のデータベースはすべて疑問符です。何が起こっているのか

すべてのページが設定されています

データベース接続後に毎回設定されます
$dbh->exec("SET CHARACTER SET utf8");
mysql データベーステーブルと各フィールドのエンコーディングは utf8_generate_ci
通常、ローカルでサーバーにアップロードされたものはすべて、挿入された漢字はすべて疑問符です
泣きそうになっているのですが、誰が助けてくれますか?

-----解決策--- -----------------
mssql はい、エンコーディングの問題については正しいですが、mysql の名前は 'utf8' に設定されています。mssql は私にはわかりません。 。もしかしてこの文は異常なのでしょうか?
------解決策---------

話し合う

引用:
mssql? はい、エンコーディングの問題については正しいですが、mysql の名前は「utf8」に設定されています。mssql は私にはわかりません。この文は異常ですよね?
mysql exec("SET CHARACTER SET utf8"); この方法は正しいのですが、set names 'utf8' ですが、まだ機能しません。 🎜>

------解決策---------ローカルデータベースからエクスポートされたエンコード形式を確認してください。すべてが UTF-8 ではない場合は、エクスポートされた中国語のコンテンツが疑問符であるかどうかを確認し、サーバーにインポートされたデータベースのエンコーディングがすべて UTF-8 であるかどうかを確認してください。これが形式の不一致の原因であるはずです。これはmysqlである必要があり、ステートメントはmysql_query("SET NAMES 'utf-8'");である必要があります。

------解決策--------- PHP ページを追加してみてください:
header( 'Content-Type:text/html;charset=utf-8');

------解決策------------------丹生兄弟はまだ賢明です、私は前に間違って書きました、utf8です! phpadmin のホームページで MySQL 接続の校正が utf8_generate_ci
になっているか、言語が簡体字中国語になっているかを確認し、問題なければエクスポートをクリックし、ファイルの文字セットが utf8 であるかどうかを確認します。したがって、下の [実行] をクリックするだけでデータをエクスポートできます。インポートするときに、これら 3 つの項目がエクスポート時と一致しているかどうかも確認する必要があります。そうすれば問題ありません
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。