有時候,我面臨着以下問題:在請求中,參數在陌生的方式編碼
string txt = con.Request.Params["Par_name"].ToString();//the original par value is arabic text
我得到以下結果!
��� ������ ������� �����
這個問題的原因是什麼,以及如何獲得原始的阿拉伯文文本?
有時候,我面臨着以下問題:在請求中,參數在陌生的方式編碼
string txt = con.Request.Params["Par_name"].ToString();//the original par value is arabic text
我得到以下結果!
��� ������ ������� �����
這個問題的原因是什麼,以及如何獲得原始的阿拉伯文文本?
當你通過URL參數應用發送字符串,即使通過AJAX和UTF-8,以避免您必須像encodeURIComponent
的JavaScript函數進行編碼衝突。僅對值的一部分進行編碼,而不是參數和完整的URL!然後在讀取代碼後面的參數時,默認情況下它們通常是UrlDecode,但如果它們不是,請手動執行。
例如從https://stackoverflow.com/a/10968848/159270代碼將是:
jQuery.ajax({
url: "/LogAction.ashx?par_name=" + encodeURIComponent(par_name) + "&par_address=" + encodeURIComponent(par_address),
type: "GET",
timeout: 3000,
async: true, // you can try and async:false - maybe is better for you
data: action=4, // here you send the log informations
cache: false,
success: function(html) {
jQuery("#FormID").submit();
},
error: function(responseText, textStatus, XMLHttpRequest) {
jQuery("#FormID").submit();
}
});
我不包括在前面的回答這個編碼,因爲通常他們是不會發送字符串作爲參數,但變量,因爲答案不是重點在這個細節上。
真的很感謝,我很好 我可以問兩個問題: –
爲什麼要輸入:「GET」? async:true,這是什麼意思? –
@just_name你可以試試true或false,什麼是對你更好的工作。一個人在等待,直到你有回報你的請求(瀏覽器停止,直到返回),另一個不停止在那裏,並且當你從請求返回時正在運行函數成功。 – Aristos
看看「(HTTP [絕對最低每一個軟件開發人員絕對,積極必須知道的關於Unicode和字符集(沒有藉口!)]://www.joelonsoftware。 COM /用品/ Unicode.html)」。這很可能是一個不一致的編碼/轉換問題。 –
當你在你的url上添加你的參數時,你必須先讓它們成爲UrlEncode() - 是嗎? – Aristos
@UweKeim:非常感謝:) –