我正在用 Symfony2 开发一个简单的页面,使用 Twig 作为模板引擎。
我有一个 url 列表,我想为每个 url 添加 Twitter 共享按钮。我所做的是在 urls 数组上进行一个简单的循环,并为循环内的每个 Twitter 按钮设置 url。看起来,twig 一开始对 url 进行了编码,然后 Twitter 脚本再次对其进行了编码。所以 Twitter 分享数不匹配。代码(循环内)如下,页面末尾还有另一部分 Twitter 代码:
<a href="https://twitter.com/share" class="twitter-share-button" data-url="{{ s.url }}">Tweet</a>
我在渲染页面上获得的 url 是:(http%253A%252F%252Fwww.example.com%252F
两次编码传递)而不是http%3A%2F%2Fwww.example.com%2F
(一次编码传递,正确)。看起来%
被再次编码为%25
.
这不会使 Twitter 计数工作,因为它将这两个视为不同的 url。
我也尝试使用一些过滤器,例如{{ s.url|raw }}
,但它没有用。
所以我的问题是:如何避免这种情况?有没有办法告诉树枝(或推特)不编码网址?