首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHP将��转换为Emoji

使用PHP将��转换为Emoji
EN

Stack Overflow用户
提问于 2017-11-09 02:33:07
回答 1查看 3.4K关注 0票数 6

我们有一堆代理项对(或者2字节的utf8?)以2个字符的形式存储为UTF8的字符,如祈祷之手表情符号��。在浏览器中呈现时,此字符串呈现为两个??

示例:��

我需要使用php将它们转换为hands,但我就是找不到iconv,utf8_decode,html_entity_decode等的组合来完成它。

此站点可正确转换��

http://www.convertstring.com/EncodeDecode/HtmlDecode

将以下字符串粘贴到其中

Please join me in this prayer. ��❤️

您会注意到,代理项对��(��)转换为

这个网站声称使用HTMLDecode,但我在php中找不到任何东西来实现这一点。我尝试过: iconv html_entity_decode和一些公共图书馆。

我承认我不是转换字符编码的专家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-09 06:29:05

我找不到一个函数来做这件事,但这是可行的:

代码语言:javascript
复制
$str = "Please join me in this prayer. ��❤️";
$newStr = preg_replace_callback("/&#.....;&#.....;/", function($matches){return convertToEmoji($matches);}, $str);
print_r($newStr);
function convertToEmoji($matches){
    $newStr = $matches[0];
    $newStr = str_replace("&#", '', $newStr);
    $newStr = str_replace(";", '##', $newStr);
    $myEmoji = explode("##", $newStr);
    $newStr = dechex($myEmoji[0]) . dechex($myEmoji[1]);
    $newStr = hex2bin($newStr);
    return iconv("UTF-16BE", "UTF-8", $newStr);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47187165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档