我如何取消字符串?

use*_*767 4 javascript php escaping

使用ajax get方法传递变量.我用它来逃避字符串与escape()函数.

在php中,我收到了值并插入到数据库中.

我如何解开字符串?

例如,对于:

balaji's
Run Code Online (Sandbox Code Playgroud)

我明白了

balaji%27s.
Run Code Online (Sandbox Code Playgroud)

Bab*_*ica 9

您可以使用此函数而不是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');
}
Run Code Online (Sandbox Code Playgroud)


小智 9

使用我已经完成的

用htmlspecialchars(urldecode($ STR))


T.J*_*der 5

而不是escape在客户端使用,使用encodeURIComponent. escape没有做URI编码。(它做了一些类似的事情,但足够不同,你会遇到麻烦。)encodeURIComponent执行标准的 URI 编码。如果您以正常方式发送数据,PHP 应该自动为您解码,例如:

var word = "balaji's";
$.ajax({
    url: "yoururl",
    data: encodeURIComponent("word") + "=" + encodeURIComponent(word)
});
Run Code Online (Sandbox Code Playgroud)

如果您没有以默认的“多部分形式”形式发送数据(例如,您要覆盖dataType),则您必须通过urldecode.


jed*_*rds 1

考虑 PHP 函数urldecode()rawurldecode()

一个区别似乎在于 +(加号)的处理。

您应该确保使用包含加号的字符串进行测试,以确保您选择了正确的函数。