3 回答
TA贡献1869条经验 获得超4个赞
根据官方 Unicode 数据文件:emoji-test.txt,☹ <U+2639> 是一个“不合格”(或“非完全合格”)表情符号序列,可能显示为文本或表情符号,具体取决于环境(操作系统、可用字体等)为了安全起见,请始终使用“完全合格”的表情符号序列;在这里,那就是:☹️ <U+2639, U+FE0F>
TA贡献1155条经验 获得超0个赞
也许尝试使用 javascript codePointAt() 进行转换并使用 javascript fromCodePoint() 在客户端显示它。
TA贡献1840条经验 获得超5个赞
正如之前的贡献者所指出的,您可能有一个不合格(即不完整)的表情符号。Unicode 标准为我们所知道的几乎每个字符定义了数字(也称为“代码点”),包括表情符号。字体的工作是显示与每个代码点对应的小图像(因此您将字符转换为图像的想法基本上是在重新发明轮子)。
但是,某些表情符号由多个代码点表示。例如,显示的单个字符🇺🇸是一个字素,由两个码位组成:U+1F1FA 和 U+1F1F8。为了让事情变得更加混乱,一些表情符号有时表示为单个代码点,而有时它们由字素的组合表示(我认为“家庭”的表情符号属于这一类)。在任何情况下,如果您正在处理表情符号序列不完整的场景,那么不同的字体或操作系统或浏览器或应用程序 (???) 的行为可能会有所不同,并且有些可能会比其他的更优雅地失败。
检查给定字符是否为有效代码点可能对您有所帮助。PHP 可以使用多字节字符串扩展进行编译——它提供了一些可能对此有所帮助的函数,例如mb_check_encoding和mb_ord(mb_ord
不幸的是没有记录(!!!)但它会给你第一个字符的代码点给定的字符串)。PHP 可能没有最好的字符串支持,但它应该能够满足您的需求。
希望这可以帮助!
- 3 回答
- 0 关注
- 99 浏览
添加回答
举报