3

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

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

在此处输入图像描述

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

谢谢!

4

1 回答 1

8

嗯,我终于明白了。

正如Mathias Bynens 在这篇出色的文章中所述,“Javascript 存在 Unicode 问题”。

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

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

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

在那里,在“表示”下,如果您单击“显示更多”,您会看到许多不同语言的表示。对于具有 codepoint 的大拇指U+1F44D,javascript 表示是使用这两个代理部分:\uD83D\uDC4D

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

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

于 2016-04-02T21:55:52.193 回答