如何在Twitter分享链接文本中包含主题标签?

34

我正在编写一个带有自定义推特按钮的网站,该按钮使用www.twitter.com/share功能。然而,我遇到的问题是在推特文本中包括井号'#'字符。

例如:

http://www.twitter.com/share?url=www.example.com&text=I+am+eating+#branstonpickel+right+now
推特文本输出为“I am eating”并省略了井号及其后面的内容。

我在 Twitter 论坛上看了一下,发现井号 '#' 字符不能成为分享 URL 的一部分。
https://dev.twitter.com/discussions/512#comment-877中提到:

井号是 URL 中的特殊字符(它们标识文档片段),因此它们和之后的任何内容都不会被发送到服务器。

以及

你需要对其进行 URLEncode,所以使用 %23

当我在测试链接中尝试第二个点时:

www.twitter.com/share?url=www.example.com&text=I+am+eating+%23branstonpickel+right+now
推特文本输出为“I am eating %23branstonpickel right now”,而不是将其转换为井号。

很抱歉我的问题很啰嗦,但是否有人知道我做错了什么?
任何反馈都将不胜感激 :)

9个回答

87

4
看起来“n-1”漏洞现在已经修复了。 - MJB


3

使用encodeURIComponent对URL进行编码。


3

1
它在11个月前就已经可以了!现在,Intent API已经进一步正式化,可以像这样工作:http://twitter.com/intent/tweet?text=我现在正在吃Branston Pickle&url=www.example.com&hashtags=branstonpickle - idodev
and branson 应更正为 branston :) - Sam Dutton
原始问题是关于在长URL中包含#字符的问题。您提到的选项是用于添加Twitter #hashtags。 - Micros
哇,这是一个三年前的问题!不过,问题是在询问如何在推文中使用内联#hashtag(即:我现在正在吃#branstonpickel)。 - idodev

2
如果您正在使用PHP,可以使用以下代码:
<?php echo 'http://www.twitter.com/share?' . http_build_query(array(
    'url' => 'http://www.example.com',
    'text' => 'I am eating #branstonpickel right now'
)); ?>

这段代码将为您完成所有的URL编码,并且易于阅读。

如需了解更多关于http_build_query的信息,请参阅PHP手册: http://us2.php.net/http_build_query


0

对于包含换行符#@和特殊Unicode字符的URL,可以使用以下方法:

var lineJump = encodeURI(String.fromCharCode(10)),
hash = "%23", arobase="%40",
tweetText = 'https://twitter.com/intent/tweet?text=Le signe chinois '+hans+' '+item.pinyin+': '+item.definition.replace(";",",")+'.'
    +lineJump+'Merci '+arobase+'Inalco_Officiel '+arobase+'CRIparis ❤️ '
    +lineJump+hash+'Chinois '+hash+'MOOC'
    +lineJump+'https://hanzi.cri-paris.org/',
tweetTxtUrlEncoded = tweetText+ "" +encodeURIComponent('#'+lesson+encodeURIComponent(hans));

0

你可以直接使用这段代码并进行修改

<a href="https://twitter.com/intent/tweet?text=hello%20this%20%23hashtag"> </a>

20% 表示空格 23% 表示井号


0
在JS中,你可以使用encodeURIComponent轻松地对特殊字符进行编码。
(警告:不要使用encodeURI,因为"#"和"@"不会被转义。)
以下是一个带有提及和标签的示例:
const text = "Hello #world ! Go follow @StackOverflow";
const tweetUrl = `https://twitter.com/intent/tweet?text=${ encodeURIComponent(text) }`;

0

urlencode

https://twitter.com/intent/tweet?text=<?= urlencode("我现在正在吃 #branstonpickel"); ?>"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接