【问题标题】:How to send emojis/emoticons with nodejs xmpp client on google chat/hangouts如何在谷歌聊天/环聊上使用 nodejs xmpp 客户端发送表情符号/表情
【发布时间】:2016-02-09 07:15:41
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 我将研究“代码点”,如下所述:emojipedia.org/pile-of-poo。如果我能让它工作,我会把它作为答案发布。

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


【解决方案1】:

嗯,我终于明白了。

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

我推荐阅读这篇文章,但总而言之,根据你想在 javascript 中表示的 unicode 字符,你可能需要实际上将两个字符一起使用,这被称为构成实际角色的“两个替代部分”。来自同一作者的This link 解释了根据字符的代码点计算这两半的公式。

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2012-11-24
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2021-01-20
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多