如何正确编码为啥使用节点请求模块的表情符号?
Posted
技术标签:
【中文标题】如何正确编码为啥使用节点请求模块的表情符号?【英文标题】: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
。
你能试试这个语法吗:"\u1F604"
? (apps.timwhitlock.info/emoji/tables/unicode)
你也可以试试:github.com/omnidan/node-emoji
成功了,谢谢。这很奇怪,因为我上面的代码几天前可以工作-_-
在收到您的反馈后,我已添加我的评论作为答案。
【参考方案1】:
作为一种解决方法,您可能会成功使用不同的 unicode 表示法,即:
const smiley = "\u1F604";
对于代码列表,您可以在emoji tables 那里找到。
此外,它可能会通过使用诸如 node-emoji 之类的库(通过 omnidan/node-emoji json file 在后台使用原始表情符号)来减轻一些开发开销。
【讨论】:
以上是关于如何正确编码为啥使用节点请求模块的表情符号?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能在这个 mysql 字段中存储 4 字节的表情符号?
如何在 Postgres 中将 url 编码的表情符号保存为文本(例如“%F0%9F%98%80”)? (罗尔)