php错误地将字符串中的¬转换为¬

时间:2018-03-07 11:23:51

标签: php

我需要在PHP中组成一个简单的字符串,这是一个要发布到另一个站点的数据字符串。

问题是其中一个字段是'notify_url = ..'当我使用PHP时需要&在它前面,而不是表示逻辑运算符AND NOT的部分,并将其转换为¬字符:

$string = 'field1=1234&field2=this&notify_url=http';

打印为'field1 = 1234& field2 =this¬ify_url= http'

我页面上的编码是UTF-8。

我尝试使用单引号和双引号创建字符串。我已经尝试使字段命名变量并将它们连接起来,但它总是产生特殊字符。

这不是urlencoded,因为在提交表单以验证发布的数据之前,要对字符串进行哈希处理。

1 个答案:

答案 0 :(得分:3)

PHP没有这样做,它是您的浏览器解释HTML实体表示法。 &在HTML中具有特殊含义,作为HTML实体的开头,&not恰好是有效的HTML实体。您需要对具有特殊含义的字符进行HTML编码:

echo htmlspecialchars($string);
// field1=1234&field2=this&notify_url=http