PHP urlencode 返回意外结果

PHP urlencode returning unexpected results

我正在尝试使用 urlencode 对以下内容进行编码:

 <t:RequestSecurityTokenResponse xmlns:t 

应编码为:

 %3Ct%3ARequestSecurityTokenResponse+xmlns%3At 

但是urlencode的结果是这样的:

 %26lt%3Bt%3ARequestSecurityTokenResponse+xmlns%3At

我觉得我在这里遗漏了一些非常明显的东西,但我一直无法弄清楚。有什么建议吗?

编码字符串的前面看起来像 < 的 html 实体。您传递给 urlencode 的内容似乎是 运行 通过 html 个实体。

php > echo urlencode("<t:RequestSecurityTokenResponse xmlns:t");
%3Ct%3ARequestSecurityTokenResponse+xmlns%3At
php > echo urlencode("&lt;t:RequestSecurityTokenResponse xmlns:t");
%26lt%3Bt%3ARequestSecurityTokenResponse+xmlns%3At