如何在google chat / hangouts上发送带有nodejs xmpp客户端的表情符号/表情符号

时间:2015-11-08 15:31:36

标签: node.js xmpp hangout node-red node-xmpp

我使用node-red xmpp客户端节点实现了Google聊天机器人。 一切正常,但我不知道如何让我的机器人给我一个笑脸/表情符号/表情符号等。

例如,我想对我的机器人说“嘿,谢谢”,我希望机器人响应是“竖起大拇指”的表情符号,当你输入“(Y)”时出现的表情符号:

enter image description here

但我得到的是文字字符串“(Y)”而不是图形等价物。我是否必须以unicode或类似的方式发送它?我猜测图形解释取决于聊天客户端(我正在通过gmail收件箱页面中的环聊小部件聊天)。

谢谢!

1 个答案:

答案 0 :(得分:6)

好吧,我终于明白了。

如此excellent article by Mathias Bynens中所述,“Javascript存在Unicode问题”。

我建议阅读这篇文章,但简而言之,根据您想在javascript中表示的unicode字符,您可能需要实际使用两个字符,这些被称为形成实际角色的“两个代理一半”。来自同一作者的This link也解释了根据角色的代码点计算这两半的公式。

但是,我发现网站https://codepoints.net列出了所有字符,并为您提供了不同语言(Javascript和JSON)的正确表示。

例如,这是“thumbsup”字符的页面:https://codepoints.net/U+1F44D

在“Representations”下,如果单击“show more”,您将看到许多不同语言的表示形式。对于具有代码点U+1F44D的thumbsup,javascript表示具有以下两个代理项:\uD83D\uDC4D

因此,如果您将javascript字符串'\uD83D\uDC4D'发送到启用了unicode的客户端,您应该会看到相应的表情符号。

注意:我最终没有实现Google聊天机器人(XMPP),而是使用Telegram API实现Telegram机器人,但关键概念是相同的。