首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rawurlencode and decode quirk?

Rawurlencode and decode quirk?
EN

Stack Overflow用户
提问于 2012-03-21 05:48:02
回答 1查看 1.5K关注 0票数 2

我有一个网址,我正在通过PHP调用(使用encodeURIComponent)传递,并在另一端用jQuery解码。我在PHP端发现了rawurldecode()之间的问题,但是当仅使用PHP来rawurlencode()和rawurldecode()测试URL时,我设法得到了同样的问题--有人能告诉我这里需要做什么吗?

复制:

代码语言:javascript
复制
$thing = rawurlencode("www.nzballet.org.nz?pa=thisthing&parmater1=23a&paramter2=another");
echo $thing;

这将产生:

www.nzballet.org.nz%3Fpa%3Dthisthing%26parmater1%3D23a%26paramter2%3Danother

如果我这样做:

代码语言:javascript
复制
$rawurl = "www.nzballet.org.nz%3Fpa%3Dthisthing%26parmater1%3D23a%26paramter2%3Danother";
$decoded = rawurldecode($rawurl);
echo $decoded;

我得到了:

www.nzballet.org.nz?pa=thisthing&parmater1=23a¶mter2=another

这是我在jQuery (ajax)和PHP之间传递时得到的相同输出,所以它与这一部分没有任何关系。我在HTML头文件中指定了charset=UTF-8 -有人能告诉我为什么我会在那里得到那个奇怪的字符吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-21 05:56:13

看起来您的web浏览器看到的是&para,并假设您指的是¶,它是段落符号(?)的实体。有关该问题的更多讨论,请参阅https://meta.stackexchange.com/questions/100905/para-turns-into-within-pre

要解决此问题,请在显示实体之前使用htmlspecialchars对其进行编码:

代码语言:javascript
复制
$rawurl = "www.nzballet.org.nz%3Fpa%3Dthisthing%26parmater1%3D23a%26paramter2%3Danother";
$decoded = rawurldecode($rawurl);
echo htmlspecialchars($decoded);

从手册中:

某些字符在超文本标记语言中具有特殊的意义,如果要保留其含义,则应使用超文本标记语言实体来表示。

..。

'&‘(与符号)变成'&'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9795521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档