utf8 remove pasar mb_convert_encoding htmlentities html_entity_decode php unicode emoji

remove - Cómo convertir Emoji de Unicode en PHP?



php unicode to utf8 (2)

Uso esta tabla de Emoji y pruebo este código:

<?php print json_decode(''"/u2600"''); // This convert to ☀ (black sun with rays) ?>

Si trato de convertir este / u1F600 (cara sonriente) a través de json_decode , veo este símbolo - ὠ0 .

¿Qué pasa? ¿Cómo hacerlo bien, Emoji?


PHP 5

JSON solo puede manejar una unidad de código UTF-16 a la vez, por lo que necesita escribir el par sustituto en su lugar. Para U+1F600 esto es /uD83D/uDE00 , que funciona:

echo json_decode(''"/uD83D/uDE00"''); 😀

PHP 7

Ya no necesita usar json_decode y solo puede usar el /u y el literal unicode:

echo "/u{1F30F}"; 🌏


Además de la respuesta de Tino, me gustaría agregar código para convertir código hexadecimal como 0x1F63C a un símbolo Unicode en PHP5 con la división en un par suplente:

function codeToSymbol($em) { if($em > 0x10000) { $first = (($em - 0x10000) >> 10) + 0xD800; $second = (($em - 0x10000) % 0x400) + 0xDC00; return json_decode(''"'' . sprintf("//u%X//u%X", $first, $second) . ''"''); } else { return json_decode(''"'' . sprintf("//u%X", $em) . ''"''); } }

echo codeToSymbol(0x1F63C); salidas 😼