Преобразуйте код смайлика в символ смайлика в PHP - PullRequest
2 голосов
/ 27 марта 2019

Как я могу преобразовать эту строку

U+1F600

в соотв.смайлик или эмодзи?

Я могу сделать это, что отлично работает:

echo "\u{1F600}";

Но когда я пытаюсь преобразовать строку, содержащую U+1F600 в этот литерал, она не работает.

Например, это приведет к

Неверная escape-последовательность кодовой точки UTF-8

$str = "Hello U+1F600";
preg_match("/U\+[0-9a-f]{4,5}/mi", $str, $find);
$text = str_replace($find[0], "\u{".str_replace("U+","", $find[0])."}", $str);

echo $text;

Так что я могу сделать с кодом Emoji в PHP, чтобы получитьЭмодзи персонаж?

1 Ответ

0 голосов
/ 27 марта 2019

Вы можете сделать preg_replace():

$str = "Hello U+1F600";
$str = preg_replace("/U\+([0-9a-f]{4,5})/mi", '&#x${1}', $str);
echo $str;

Будет отображаться

Hello ?
...