如何在 php 中分解 unicode 表情符号
How to explode unicode Emojis in php
我正在为网站使用 cometchat。
现在我正在开发 React api,为此他们不提供任何支持,所以我需要为 IOS 和 Android 聊天应用程序创建表情符号 api。
在数据库中,我们将表情符号存储为 IMG 标签。
我们准备了一个如下的数组
$symbols = array(
':n100:' => '\ud83d\udcaf',
':n1234:' => '\ud83d\udd22',
':a:' => '\ud83c\udd70',
':ab:' => '\ud83c\udd8e',
':abc:' => '\ud83d\udd24',
':abcd:' => '\ud83d\udd21',
':accept:' => '\ud83c\ude51',
':aquarius:' => '\u2652',
':aries:' => '\u2648',
);
$smiley = array(
':n100:': 'n100.png',
':n1234:':'n1234.png', ....
);
现在主要问题出在 IOS 和 Android 应用程序的字符串 return 中。
我无法从该字符串中解析笑脸。
下面是字符串示例。
Str1: "Lorem Ipsum \u23eb \u23ec"
Str2: "lorem \u23ec\u23eb Ipsum"
Str3: "\ud83d\udd04\ud83d\udd3c"
如您所见,在 string1、string2 中有两个微笑,一个带有 space 分隔符,另一个没有 space 分隔符。
而在 string3 中,它也只包含两个微笑 ("\ud83d\udd04","\ud83d\udd3c").
你们能帮我解析笑脸或 Unicode 字符串并分解消息和字符串中的微笑吗?
我想解析这些微笑以将其与上述数组 $symbols 进行比较,并且根据键,我只需要显示该数组中的图像。
提前致谢。
JSON的\u一次只能处理一个UTF-16编码单元,所以需要改写代理对。对于 U+1F600,这是 \uD83D\uDE00,有效:
echo json_decode('"\uD83D\uDE00"');
我正在为网站使用 cometchat。 现在我正在开发 React api,为此他们不提供任何支持,所以我需要为 IOS 和 Android 聊天应用程序创建表情符号 api。 在数据库中,我们将表情符号存储为 IMG 标签。 我们准备了一个如下的数组
$symbols = array(
':n100:' => '\ud83d\udcaf',
':n1234:' => '\ud83d\udd22',
':a:' => '\ud83c\udd70',
':ab:' => '\ud83c\udd8e',
':abc:' => '\ud83d\udd24',
':abcd:' => '\ud83d\udd21',
':accept:' => '\ud83c\ude51',
':aquarius:' => '\u2652',
':aries:' => '\u2648',
);
$smiley = array(
':n100:': 'n100.png',
':n1234:':'n1234.png', ....
);
现在主要问题出在 IOS 和 Android 应用程序的字符串 return 中。 我无法从该字符串中解析笑脸。 下面是字符串示例。
Str1: "Lorem Ipsum \u23eb \u23ec"
Str2: "lorem \u23ec\u23eb Ipsum"
Str3: "\ud83d\udd04\ud83d\udd3c"
如您所见,在 string1、string2 中有两个微笑,一个带有 space 分隔符,另一个没有 space 分隔符。 而在 string3 中,它也只包含两个微笑 ("\ud83d\udd04","\ud83d\udd3c").
你们能帮我解析笑脸或 Unicode 字符串并分解消息和字符串中的微笑吗?
我想解析这些微笑以将其与上述数组 $symbols 进行比较,并且根据键,我只需要显示该数组中的图像。
提前致谢。
JSON的\u一次只能处理一个UTF-16编码单元,所以需要改写代理对。对于 U+1F600,这是 \uD83D\uDE00,有效:
echo json_decode('"\uD83D\uDE00"');