【发布时间】:2018-07-19 08:26:08
【问题描述】:
用户输入狗脸表情符号后,我得到了一个 Javascript 字符串 - U+1F436。
字符串似乎是 2 个 unicode 字符 - “\ud83d\udc36”。
我正在尝试将其转换为 utf-8。我调用 javascript encodeURIComponent(string) 并返回一个似乎不是有效的 utf-8 的 6 字节字符串。
我相信有效的 utf-8 长度为 4 个字节,从 0xF0 开始。
那么我如何将 "\ud83d\udc36" 转换为有效的 utf-8 字符串。
谢谢。
【问题讨论】:
-
"字符串似乎是 2 个 unicode 字符" 具体来说,它是两个 UTF-16 代码单元,它们形成了一个代理对。 (JavaScript 字符串实际上是一系列 UTF-16 代码单元,可以容忍无效的代理对。)
标签: javascript utf-8 character-encoding emoji