27

我有一个 html 文本。我已经使用 urlencode 函数在 php 中对其进行了编码。我想在 javascript 中解码该文本。当我在 javascript 中使用 unescape 函数时,它会替换所有特殊字符,但 sapce 会被“+”替换。我怎样才能正确地做到这一点,以便空间被替换为空间本身???

4

4 回答 4

52

PHP rawUrlEncode() == JavaScript encodeURIComponent()

PHP rawUrlDecode() == JavaScript decodeURIComponent()

于 2011-05-10T14:58:09.603 回答
17

尝试改用 rawurlencode - urlencode 出于“历史”原因做一些不同的事情。

有关详细信息,请参阅http://us.php.net/manual/en/function.urlencode.php

于 2009-07-09T17:49:19.347 回答
4

括号是这篇文章中所说的所有内容的例外。

极客模式开启:

错误的

PHP rawUrlEncode() !== JavaScript encodeURIComponent()

但是是真的

PHP rawUrlEncode() == JavaScript encodeURIComponent()

换句话说,有许多特殊字符在 encodeURIComponent 中时在 rawurlencode 中不被视为安全字符。

于 2013-11-25T08:23:51.250 回答
3

尝试这个:

return decodeURIComponent((str + '').replace(/\+/g, '%20'));

来源:http ://phpjs.org/functions/urldecode:572

于 2012-09-26T03:24:26.457 回答