本文介绍了使用PHP将&;#55357;&;#56911;转换为Html中的Emoji的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们有一堆代理项对(或2字节UTF8?)像��
这样的字符,这是祈祷手表情符号,存储为UTF8作为2个字符。在浏览器中呈现时,此字符串呈现为两个??示例:;;
我需要使用php将它们转换为HANDS emjoi,但我就是找不到iconv、utf8_decode、html_Entity_decode等的组合来实现它。
此站点正确转换��
:
http://www.convertstring.com/EncodeDecode/HtmlDecode
将以下字符串粘贴到其中
Please join me in this prayer. ��❤️
您会注意到代理项对;;(��
)转换为🙏
这个站点声称使用HTMLDecode,但我在php中找不到任何东西来实现这一点。我试过了:图标HTMLEntity_Decode和一些公共图书馆。
我承认我不是转换字符编码的专家!
推荐答案
我找不到执行此操作的函数,但它可以工作:
$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);
}
这篇关于使用PHP将&;#55357;&;#56911;转换为Html中的Emoji的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!