Php AJAX请求中的特殊字符

Php AJAX请求中的特殊字符,php,javascript,ajax,special-characters,http-post,Php,Javascript,Ajax,Special Characters,Http Post,我有一个关于特殊字符输入的问题。首先,考虑+ 作为一个特殊的角色,对吗?我的表单中有一个字段,需要能够包含+。但是,当我使用AJAX将其发送到PHP脚本并使用$\u POST访问变量时,+不会显示,因此不会保存在数据库中 例如: // on the JavaScript side value = +123; paramPost = "name=abc&value=" + value; alert("paramPost = " + paramPost); // Output: paramp

我有一个关于特殊字符输入的问题。首先,考虑
+
作为一个特殊的角色,对吗?我的表单中有一个字段,需要能够包含
+
。但是,当我使用AJAX将其发送到PHP脚本并使用
$\u POST
访问变量时,
+
不会显示,因此不会保存在数据库中

例如:

// on the JavaScript side
value = +123;
paramPost = "name=abc&value=" + value;
alert("paramPost = " + paramPost);
// Output: parampost = name=abc&value=123
// The + is gone!
// Also, when I change value to a string, the + is still there,
// but when PHP receives it, it's gone.
ajax.doPost(paramPost);  
我能做些什么来解决这个问题

我试过这个:

$val = htmlspecialchars($_POST['value'], ENT_QUOTES);

…但它仍然不起作用。

在javascript中,数字前的前导“+”表示它为正。要将值“+1”作为URI查询参数的一部分发送,需要对其进行转义。“+1”的正确转义版本为:

%2B1

其中%2B是javascript中“+”的十六进制值,数字前的前导“+”表示它为正。要将值“+1”作为URI查询参数的一部分发送,需要对其进行转义。“+1”的正确转义版本为:

%2B1

其中%2B是“+”的十六进制值

A
+
在数字上是冗余的;将
+123
更改为
“+123”

如果您的JavaScript库没有逃逸,也可以执行
encodeURIComponent(value)
而不是
value
。因此,您的固定代码应该是:

value = "+123";
paramPost = "name=abc&value=" + encodeURIComponent(value); 

// ..

ajax.doPost(paramPost);

+
在数字上是多余的;将
+123
更改为
“+123”

如果您的JavaScript库没有逃逸,也可以执行
encodeURIComponent(value)
而不是
value
。因此,您的固定代码应该是:

value = "+123";
paramPost = "name=abc&value=" + encodeURIComponent(value); 

// ..

ajax.doPost(paramPost);

请清理您的代码并使用代码标签。//parampost=name=abc&value=+123应该被注释掉吗?这有关系吗?我对php了解不多,但有没有什么方法可以让你摆脱魔咒呢?嗨,matchew!谢谢,老兄,我已经找到解决办法了。。我只是把它写出来作为基础:)我使用的是encodeURIComponent(),它工作得很好。谢谢你的回复:)请清理你的代码并使用代码标签。//parampost=name=abc&value=+123应该被注释掉吗?这有关系吗?我对php了解不多,但有没有什么方法可以让你摆脱魔咒呢?嗨,matchew!谢谢,老兄,我已经找到解决办法了。。我只是把它写出来作为基础:)我使用的是encodeURIComponent(),它工作得很好。谢谢你的回复:)高科技!谢谢!我现在正在使用encodeURIComponent(),它给出了+的十六进制值。非常感谢Dhi minitech!谢谢!我现在正在使用encodeURIComponent(),它给出了+的十六进制值。非常感谢Dhi Rob Raisch!!非常感谢!当然,它需要有“+”的十六进制值。谢谢你,伙计!嗨,罗布·莱希!!非常感谢!当然,它需要有“+”的十六进制值。谢谢你,伙计!