2011-11-07 135 views
0

這是原始的字符串不同的結果

Apple iPad 2 16GB Wifi + 3G (AT&T) 

JS是encodeURI()

Apple%20iPad%202%2016GB%20Wifi%20+%203G%20(AT&T) 

PHP urldecode()後後,通過$ _GET從AJAX調用

Apple iPad 2 16GB Wifi 3G (AT&T) 

插入MySQL數據庫後包裹着單引號

Apple iPad 2 16GB Wifi 3G (AT 

如何將原始字符串準確地存入數據庫?

+0

如果數據在插入到MySQL之前是有效的,那麼問題不能與URL編碼有關。另外,你如何通過你需要從PHP解碼*的GET參數?解碼是自動的。 –

回答

2

您應該使用encodeURIComponent而不是encodeURI。

然後在JavaScript中的encodeURIComponent之後字符串將是Apple%20iPad%202%2016GB%20Wifi%20%2B%203G%20(AT%26T),它將通過PHP中的urldecode轉換回Apple iPad 2 16GB Wifi + 3G (AT&T)

2

您的數據庫字段很可能不足以包含完整的字符串。

你也應該在字符串的encodeURIComponent代替encodeURI

0

查找PHP.JS's urlencode function編碼 - 它的行爲在完全相同的方式,因爲PHP的用urlencode,所以urldecode將很好地工作。

0

PHP中的rawurlencode將保留「+」。不知道&符號,你可以嘗試將字符串傳遞給htmlentities。