ホームページ >ウェブフロントエンド >jsチュートリアル >中国語パラメータを渡す JQuery.ajax の解決策 Recommendation_jquery

中国語パラメータを渡す JQuery.ajax の解決策 Recommendation_jquery

WBOY
WBOYオリジナル
2016-05-16 18:09:061031ブラウズ

最近、中国語のパラメータを渡す必要があるという問題に遭遇しました。インターネットで検索すると、あちこちにコピペされた「究極の」「解決策」は、escape(str) でトランスコードし、サーバー上でメソッドを書いて再度編集するか、System.Text.Encoding Change を使用するだけです。次のメソッドを前後に実行します。

私はずっと前から Prototype フレームワークを使用しています。私はこれを .net-GB2312 または jsp-utf8 で使用しましたが、文字エンコーディングの問題に遭遇したことはありません。そこで、プロトタイプと JQuery コードの両方をダウンロードして開いて、理由を調べました。

違いは、JQuery のデフォルトの contentType: application/x-www-form-urlencoded

と Prototype が contentType: application/x-www-form-urlencoded; であることです。 🎜>
これが、文字セットが指定されていない場合、ISO-8859-1 (通常は Latin-1 と呼ばれます) が使用される原因です。 Latin-1 には、すべての西ヨーロッパ言語を記述するために不可欠な追加文字が含まれています。

JQuery の Ajax は国際化の問題を全く考慮せず、欧文文字セットを使用していたため、中国語を送信する際に文字化けが発生するという問題がありました。

私たちの UTF-8 はこの問題を解決できます。

最終的には、JQuery コードを変更し、contentType が utf-8 文字セットを使用することを明示的に宣言する必要があることを意味します。これにより、GB2312 中国語送信の問題を解決できます。

必要なのは、JQuery コードを変更して charset=UTF-8 を追加するだけです。この方法では、web.config を変更したり、ページのエンコーディングを変更したりする必要はありません。 (str) そしてサーバー側でデコードします。英語での伝わり方は中国語でも伝わります。

簡単なコードをテストします:

test.html:










AjaxTest






AjaxTest.aspx:


コードをコピーします>

コードは次のとおりです。
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312"