I use this table of Emoji and try this code:
<?php print json_decode('"\u2600"'); // This convert to ☀ (black sun with rays) ?>
If I try to convert this \u1F600 (grinning face) through json_decode
, I see this symbol — ὠ0
.
Whats wrong? How to get right Emoji?
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); ?> Show activity on this post.
PHP 5
JSON's \u
can only handle one UTF-16 code unit at a time, so you need to write the surrogate pair instead. For U+1F600
this is \uD83D\uDE00
, which works:
echo json_decode('"\uD83D\uDE00"'); 😀
PHP 7
You now no longer need to use json_decode
and can just use the \u
and the unicode literal:
echo "\u{1F30F}"; 🌏
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With