ホームページ >ウェブフロントエンド >jsチュートリアル >JQuery ajaxSubmit によって送信された中国語の文字化けコードを解決する方法
この記事では、jquery ajax submit が中国語の文字化けを送信する問題の解決策を共有します。興味のある友人は、私をフォローして学ぶことができます
ほとんどの人は
jQuery(form).ajaxSubmit({ url: "ajaxsub.aspx?abc=test", type: "post", dataType: "json", success: data });
分析: JQuery の AJAX 送信は、 data エンコードするには、encodeURIComponent を使用して js でデータを処理します。したがって、Firefox であっても IE であっても、送信されるデータは一貫性があり、UTF-8 でエンコードされたデータです。
ヘッダーを見ると、エンティティの Content-Type に違いがあることがわかります
Firefox では、Content-Type は文字セットを utf-8 として指定します。
IE には文字セットの仕様がありません。
デフォルトでは、AJAX 非同期送信の文字エンコーディングは Web ページ自体と一致している必要があります。つまり、サーバー側は表示される文字セットの仕様を見つけられません。 gb2312 を使用してデータをデコードします (ただし、データは送信前に UTF-8 エンコードされています)。これが IE での文字化けの根本原因であり、Firefox では、ブラウザが AJAX データを送信するときに、文字セットの表示仕様が追加されます。サーバーは UTF-8 を使用してデータをデコードします (正しいデコード)。
JQueryのAJAXツール機能の説明を確認すると、optionsにcontent-typeを指定するパラメータがあることが分かりました
なので、送信時にエンコードタイプを指定する必要があります
contentType: "application/x-www-form-urlencoded; charset=utf-8",
以下の通りです
jQuery(form).ajaxSubmit({ url: "ajaxsub.aspx?abc=test", type: "post", dataType: "json", contentType: "application/x-www-form-urlencoded; charset=utf-8", success: data });
以上、皆さんの参考になれば幸いです。
関連記事:
JQuery ajaxがjsonを返す時の中国語の文字化けを解決する方法
Djangoフレームワークがajax postメソッドを使用する方法
動的ページングを実装するajax +jtemplateの詳細な説明
以上がJQuery ajaxSubmit によって送信された中国語の文字化けコードを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。