ホームページ  >  記事  >  バックエンド開発  >  ajax+phpの中国語文字化けの解決方法を詳しく解説_PHPチュートリアル

ajax+phpの中国語文字化けの解決方法を詳しく解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:07:44809ブラウズ

中国語をフォームで送信すると文字化けしないのですが、ajaxで送信すると文字化けしてしまう原因は何でしょうか?

私の理解では、ソースコードを書くときは通常メモ帳を使用し、保存するときはデフォルトでANSIエンコーディングを使用します。「" または "header('Content-Type:text/html;charset=UTF-8');" は Web ページのエンコーディングを指定するため、そのエンコーディングは " GB2312」。フロントエンドがバックエンドにデータを送信するときに、フォームを使用して送信すると、フロントエンドとバックエンドは「GB2312」エンコードを使用して通信し、ajax を使用して送信すると文字化けが発生しません。フロントエンドの「GB2312」から送信されるエンコーディングを「UTF-8」にしてバックエンドに渡し、バックエンドから返された受信データを「UTF-8」として扱い、「GB2312」に変換します。このようにフロントエンドページに表示すると文字化けが発生します。
図に示すように:


そのため、コード化けを解決するには、データのエンコード変換をバックグラウンドで実行する必要があります。バックグラウンドで受信したデータは、PHPのmb_convert_encoding(「変換対象のデータ」、「gb2312」)を使用して変換されます。 、「UTF-8」) に変換され、データベースに保存されます。バックグラウンドからフロントに返される中国語データも、mb_convert_encoding("返されるデータ", "UTF-8", "gb2312") を使用して変換して返される必要があります。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327519.html技術記事中国語をフォームで送信すると文字化けしないのですが、ajaxで送信すると文字化けしてしまう原因は何でしょうか? 私の理解では、ソースコードを書くときは通常メモ帳を使用して書くと思います...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。