将表情符号javascript unicode代码转换为utf-8
在用户输入狗脸表情-U+1F436之后,我得到了一个Javascript字符串 字符串似乎是2个unicode字符-“\ud83d\udc36” 我想把它转换成utf-8。我调用javascript encodeURIComponent(string),它返回一个似乎不是有效的utf-8的6字节字符串 我相信有效的utf-8从0xF0开始有4个字节长 那么如何将“\ud83d\udc36”转换为有效的utf-8字符串呢 谢谢。试试这个:将表情符号javascript unicode代码转换为utf-8,javascript,utf-8,character-encoding,emoji,Javascript,Utf 8,Character Encoding,Emoji,在用户输入狗脸表情-U+1F436之后,我得到了一个Javascript字符串 字符串似乎是2个unicode字符-“\ud83d\udc36” 我想把它转换成utf-8。我调用javascript encodeURIComponent(string),它返回一个似乎不是有效的utf-8的6字节字符串 我相信有效的utf-8从0xF0开始有4个字节长 那么如何将“\ud83d\udc36”转换为有效的utf-8字符串呢 谢谢。试试这个: function encode_utf8(s) { r
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
“字符串似乎是2个unicode字符”,具体地说,它是两个UTF-16代码单元,构成一个代理项对。(一个JavaScript字符串实际上是一系列允许无效代理项对的UTF-16代码单元。)我在unescape上没有定义。或者你能告诉我escape是做什么的,我可以复制它。例如。变量e=encodeURIComponent('\u0227');console.log(e)“%C8%A7”var u=unescape(e);控制台日志(u);“ȧ”此解决方案将utf-16释放为两个%udddd序列。理想情况下,我希望将其转换为正确的utf-8,即4个字节0xF0、0x9F、0x98、0x81。但是如果我不能,我可以使用这个解决方案作为备份-我感谢你的回答。事实上,我发现encodeURIComponent()确实正确地将utf16转换为utf8(4字节序列)。问题出在服务器上。感谢您再次确认。