如何使用节点请求模块编码正确的表情符号?

Don*_*ant 1 javascript request node.js emoji telegram-bot

我正在使用请求模块向 Telegram 机器人发送消息,一切都很好,除了我显示表情符号的方式,它打印得不好

\n\n

发帖请求:

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

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

\n\n
const _emojis = {\n            throwingAKiss: '\\xF0\\x9F\\x98\\x98',\n            tearsOfJoy: '\\xF0\\x9F\\x98\\x82',\n            smirkingFace: '\\xF0\\x9F\\x98\\x8F'\n        }\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我显示这个符号\xc3\xb0

\n

k0p*_*kus 5

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

const smiley = "\u{1F604}";
Run Code Online (Sandbox Code Playgroud)

对于代码列表,有表情符号表

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