2013-02-23 53 views
0

我有一个RSS 2.0项目元素,它需要链接才能验证RSS。我想在链接元素中插入一个URI来链接到我网站上的一个页面。在此URI中,我使用&而不是&来分隔我通过URI传递的不同参数。当我这样做时,RSS能够被验证,但是当我将链接元素中的URI复制并粘贴到浏览器中时,浏览器不会将其转换为&来表示URI参数的分离。当通过URI传递时,浏览器未转换&(&)

我使用的XML编码是UTF-8。

的URI,我用的是:

http://www.stacks.co.uk/rapmusic/albums.php?echonest_id=ARD5VN51187B9B8D29&deezer_id=3505&artist_name=Jamie+Foxx&artist_image=http%3A%2F%2Fuserserve-ak.last.fm%2Fserve%2F_%2F95148.jpg 

我还试图用%26,而不是&但即使如此,也没有让我去我的URI。

+0

如何编码特殊字符,以及如何解码它们?字符串wuery需要用'&'分隔,但是如果你想通过'7'作为GET数据,你需要将它编码成'%26' – Dharman 2013-02-23 14:30:36

回答

0

为了不破坏RSS XML,您将始终需要在带参数的URL中使用&而不是&。 RSS提交时,它会自动将ASCII符号转换为可用的URL等价物;即此:

http://example.com/script.php?param1=foo&param2=bar 

将变为:

http://example.com/script.php?param1=foo&param2=bar 

如果你看一下实际的XML,但是,它仍然会显示解码值 - 所以不要让它愚弄你。一个月前我有同样的问题。

+0

OMG谢谢。所有这段时间两个小时,我复制并粘贴来自veiw源的URI,而不是实际复制和粘贴HTML页面的URI。我非常沉迷于认为用户将使用视图源来查找放置在链接元素中的URI,我忘记了他们实际上会查看实际的HTML页面。 – Human 2013-02-23 14:36:16

+0

我想我花了好一个小时也抓到我的头!到了我正考虑重写我的PHP框架以将URL包装在'CDATA'中的阶段:P – hohner 2013-02-23 14:40:16