Otávio Barreto
Otávio Barreto

Reputation: 1558

convert emoji character to Unicode codepoint number in php

I am trying to convert emoji to unicode with php , more info: https://unicode.org/emoji/charts/full-emoji-list.html

How to convert this 😃 into this U+1F603 with php?

function convert_emoji($var){

}

Upvotes: 4

Views: 6974

Answers (2)

msg
msg

Reputation: 8171

The Intl extension provides a function to return the codepoint for a character. As it returns an integer, you just need to convert it to a hex string.

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

Upvotes: 2

Otávio Barreto
Otávio Barreto

Reputation: 1558

I found a simple way to solve, so I will answer my own question, but if somebody would like to improve this function, would be cool.

<?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);


?>

Upvotes: 5

Related Questions