将表情符号字符转换为 php 中的 Unicode 代码点编号

convert emoji character to Unicode codepoint number in php

我正在尝试使用 php 将表情符号转换为 unicode , 更多信息: https://unicode.org/emoji/charts/full-emoji-list.html

如何用 php 将其转换为 U+1F603

function convert_emoji($var){

}

我找到了一个简单的解决方法,所以我会回答我自己的问题,但如果有人想改进这个功能,那就太好了。

<?php

function emoji_to_unicode($emoji) {
   $emoji = mb_convert_encoding($emoji, 'UTF-32', 'UTF-8');
   $unicode = strtoupper(preg_replace("/^[0]+/","U+",bin2hex($emoji)));
   return $unicode;
}

$var = "";
echo emoji_to_unicode($var);


?>

Intl 扩展提供 a function 到 return 字符的代码点。由于它 return 是一个整数,您只需将其转换为十六进制字符串即可。

function emoji_to_unicode($emoji) {
    return sprintf('U+%X', IntlChar::ord($emoji));
}