// url encode your string
var string = encodeURIComponent('+'); // "%2B"
// send it to your server
window.location = 'http://example.com/?string='+string; // http://example.com/?string=%2B
在你的服务器上
echo $_GET['string']; // "+"
只有原始的HTTP请求包含url编码的数据。
对于GET请求,您可以从URI中检索它。$_SERVER['REQUEST_URI']或$_SERVER['QUERY_STRING']。对于urlencoded POST, file_get_contents('php://stdin')
在JavaScript中试试:
PHP中:
在JS和PHP中使用encodeuriccomponent(),你应该会收到正确的值。
注意:当您在PHP中访问$_GET、$_POST或$_REQUEST时,您正在检索已经解码的值。
例子:
在你的JS中:
在你的服务器上
只有原始的HTTP请求包含url编码的数据。
对于GET请求,您可以从URI中检索它。$_SERVER['REQUEST_URI']或$_SERVER['QUERY_STRING']。对于urlencoded POST, file_get_contents('php://stdin')
注:
Decode()仅适用于单字节编码的字符。它不适用于整个UTF-8范围。
eg:
Note:
"%C4%80"
is equivalent to:escape('\xc4\x80')
这是在UTF-8中表示Ā的字节序列(\xc4\x80)。因此,如果您使用encodeuriccomponent(),您的服务器端必须知道它正在接收UTF-8。否则PHP会打乱编码。