ホームページ  >  記事  >  ウェブフロントエンド  >  Ajaxリクエスト時に中国語が文字化けして送信される問題の解決方法

Ajaxリクエスト時に中国語が文字化けして送信される問題の解決方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-03 10:00:252289ブラウズ

今回は、Ajaxリクエスト中に中国語が文字化けして送信される問題を解決する方法を紹介します。 Ajaxリクエスト中に中国語が文字化けして送信される場合に解決すべき注意点は何ですか?実際のケースを見てみましょう。それを一緒に。

今日問題が発生しました、ajaxリクエストで中国語を送信する際に文字化けが発生する問題についてです。

次のコード:

function UpdateFolderInfoByCustId(folderId, folderName, custId) {
$.ajax({
type: "Post",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
url: "http://localhost/CRM/Ashx/HandKBSucessCustomer.ashx?Method=UpdateCustomerByCustId&folderId=" 
+ folderId + "&folderName=" + encodeURI(encodeURI(folderName)) + "&custId=" + custId,
success: function (msg) {
alert(msg);
},
error: function (error) {
alert(error);
}
});
}
上記のコードで「&foderName="+folderName」だけを渡すと、encodeURL で 2 回変換すると、中国語の文字エンコーディングが

"%e6%b5 のようになります。 %8b %eb%af%95」形式。この形式に変換した後、取得時に以下のようにトランスコードを行います。

public void UpdateCustomerByCustId()
{
int folderId = Convert.ToInt32(Request["folderId"]);
string folderName = Request["folderName"];
string folderName2 = Convert.ToString(System.Web.HttpUtility.UrlDecode(folderName));
int custId = Convert.ToInt32(Request["custId"]);
bool res = false;
try
{
res = CustomerBusiness.UpdateCustomerByCustId(folderId, folderName2, custId);
}
catch (Exception ex)
{
throw;
}
Response.Write(res);
}
}
}
この変換後、送信された漢字を取得できます。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨書籍:

AJAX リクエスト配列の実装方法

Ajax でキャッシュをクリアする方法

以上がAjaxリクエスト時に中国語が文字化けして送信される問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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