搜狗输入法中选择笑脸表情后,提交到后端, json_encode 得到 \ud83d\ude04 。
如何把 d83dde04 转成标准 emoji 表情代码困扰了我好久,找了好多文章,终于让我找到解决方案了,也许其他人也有需要,所以在这里记录下来。
关键性参考文章: http://www.bubuko.com/infodetail-1022211.html
里边推导了一个公式,可以把 0xd83d0xde04 转成 1f604 ,而 U+1F604 就是 Unified 编码的笑脸表情代码。
文中是 js 的函数,我提取出来了关键几行代码,转成 PHP 代码如下:
$h = 0xd83d; //高位
$l = 0xde04; //低位
$code = ($h - 0xD800) * 0x400 + 0x10000 + $l - 0xDC00; // 转换算法
echo "U+" . strtoupper(dechex($code));
//echo 结果是 U+1F604
另外不同编码方式的转换,参考 http://code.iamcal.com/php/emoji/
另一些参考网页
http://computerism.ru/emoji-smiles.htm
https://github.com/mc-zone/emoji-code
如何把 d83dde04 转成标准 emoji 表情代码困扰了我好久,找了好多文章,终于让我找到解决方案了,也许其他人也有需要,所以在这里记录下来。
关键性参考文章: http://www.bubuko.com/infodetail-1022211.html
里边推导了一个公式,可以把 0xd83d0xde04 转成 1f604 ,而 U+1F604 就是 Unified 编码的笑脸表情代码。
文中是 js 的函数,我提取出来了关键几行代码,转成 PHP 代码如下:
$h = 0xd83d; //高位
$l = 0xde04; //低位
$code = ($h - 0xD800) * 0x400 + 0x10000 + $l - 0xDC00; // 转换算法
echo "U+" . strtoupper(dechex($code));
//echo 结果是 U+1F604
另外不同编码方式的转换,参考 http://code.iamcal.com/php/emoji/
另一些参考网页
http://computerism.ru/emoji-smiles.htm
https://github.com/mc-zone/emoji-code