【问题标题】:How encode in a right why emojis using node request module?如何正确编码为什么使用节点请求模块的表情符号?
【发布时间】:2018-05-15 23:58:12
【问题描述】:

我正在使用 request 模块向 Telegram 机器人发送消息,一切都很好,除了我显示表情符号的方式,它没有很好地打印出来

发布请求:

request.post({
            url: `${this.getApiURL()}/${apiName}`,
            formData: payload,
            headers: {
                'Content-Type': 'application/json',
                'Charset': 'utf-8',
            }
        }, (err, resp, body) => {});

有效负载包含一条带有一些表情符号的文本消息,例如:

const _emojis = {
            throwingAKiss: '\xF0\x9F\x98\x98',
            tearsOfJoy: '\xF0\x9F\x98\x82',
            smirkingFace: '\xF0\x9F\x98\x8F'
        }

但我显示的是这个符号 ð

【问题讨论】:

  • 似乎只使用了您的第一组,因为 ð 在 UTF8 中是 U+00F0
  • 你能试试这个语法吗:"\u{1F604}"? (apps.timwhitlock.info/emoji/tables/unicode)
  • 你也可以试试:github.com/omnidan/node-emoji
  • 成功了,谢谢。这很奇怪,因为我上面的代码几天前可以工作-_-
  • 在收到您的反馈后,我已添加我的评论作为答案。

标签: javascript node.js request telegram-bot emoji


【解决方案1】:

作为一种解决方法,您可能会成功使用不同的 unicode 表示法,即:

const smiley = "\u{1F604}";

对于代码列表,您可以在emoji tables 那里找到。

此外,它可能会通过使用诸如 node-emoji 之类的库(通过 omnidan/node-emoji json file 在后台使用原始表情符号)来减轻一些开发开销。

【讨论】:

    猜你喜欢
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 2011-03-18
    • 2017-06-10
    • 1970-01-01
    • 2019-07-13
    相关资源
    最近更新 更多