使用ajax get方法傳遞一個變量。在那裏我使用escape()函數來逃避字符串。如何避開字符串?
在PHP中,我得到的價值,並插入到數據庫中。
如何避開字符串?
例如,對於:
balaji's
我得到
balaji%27s.
使用ajax get方法傳遞一個變量。在那裏我使用escape()函數來逃避字符串。如何避開字符串?
在PHP中,我得到的價值,並插入到數據庫中。
如何避開字符串?
例如,對於:
balaji's
我得到
balaji%27s.
而不是在客戶端使用escape
,請使用encodeURIComponent
。 escape
確實不是做URI編碼。 (它做了類似的事情,但不同,以至於會遇到麻煩。)encodeURIComponent
執行標準的URI編碼。 PHP都應該是正常的方式發送數據,例如,它會自動爲您解碼:
var word = "balaji's";
$.ajax({
url: "yoururl",
data: encodeURIComponent("word") + "=" + encodeURIComponent(word)
});
如果你不是在默認的「多形式」發送數據形式(例如,你覆蓋dataType
),你必須通過urldecode
自己解碼。
我想encodeURIComponent方法它不工作 – user737767 2011-05-05 07:30:58
@user:你必須發佈完整的Ajax調用和您使用的是處理它的PHP代碼。 – 2011-05-05 08:04:08
您可以使用此功能,而不是urldecode()
function utf8_urldecode($str) {
return html_entity_decode(preg_replace("/%u([0-9a-f]{3,4})/i", "&#x\\1;", urldecode($str)), null, 'UTF-8');
}
對我來說,這是需要了解的是'html_entity_decode($海峽,空, 'UTF-8')'解碼轉義字符,如 「&#227」。我只是把它寫在這裏,所以如果他們和我有同樣的問題,那麼其他人就會更容易看到它。 – VinGarcia 2017-09-04 14:38:38
使用我與
用htmlspecialchars(urldecode($ STR))
無論'urldecode()',也沒有做過'rawurldecode()'完全適用於'escape()'d的數據。一般的consenus是使用'encodeURIComponent()'代替。 – 2011-05-05 07:23:27
我低估了,因爲它可以*看起來*長時間工作,直到遇到函數不匹配的字符。沒有任何個人@jedwards – 2011-05-05 07:26:37
@Pekka,我認爲要求OP改變它的編碼方式是非常冒險的。問題不是「我該如何做到這一點從頭到尾」,而是「我該如何解碼js的escape()」生成的字符串。此外,我不知道任何由escape()編碼的字符都不會被urldecode()解碼,是嗎? – jedwards 2011-05-05 07:27:29