这是原始字符串
Apple iPad 2 16GB Wifi + 3G (AT&T)
在js encodeURI()
之后Apple%20iPad%202%2016GB%20Wifi%20+%203G%20(AT&T)
在PHP urldecode()之后,通过来自AJAX调用的$ _GET
Apple iPad 2 16GB Wifi 3G (AT&T)
插入包含单引号
的MySQL DB后Apple iPad 2 16GB Wifi 3G (AT
如何将原始字符串准确地输入数据库?
答案 0 :(得分: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)
。
答案 1 :(得分:2)
您的数据库字段很可能不够长,无法包含完整的字符串。
此外,您应该使用encodeURIComponent
而不是encodeURI
答案 2 :(得分:0)
查找PHP.JS's urlencode function - 它的行为方式与PHP的urlencode完全相同,因此urldecode可以完美运行。
答案 3 :(得分:0)
PHP中的rawurlencode将保留“+”。不确定&符号,你可以尝试将字符串传递给htmlentities。