ホームページ >ウェブフロントエンド >jsチュートリアル >JQuery ajaxSubmit によって送信された中国語の文字化けコードを解決する方法

JQuery ajaxSubmit によって送信された中国語の文字化けコードを解決する方法

亚连
亚连オリジナル
2018-05-25 09:47:452691ブラウズ

この記事では、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 サイトの他の関連記事を参照してください。

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