php字符串insret数据库中的表情符号

时间:2018-01-11 09:31:29

标签: php mysql utf8mb4

我将论坛MySQL数据库转换为utf8mb4。 似乎工作正常,因为Emojis正在保存并显示正常。

但是我遇到了聊天室的问题。 表情符号以Unicode "%uD83D%uDE0B"

保存在数据库中

如果phpmyadmin插入了emojis,则工作正常。

这可以通过mb_convert或其他东西来解决吗?

php 5.6

这可能是有问题的代码 -

$str = unhtmlspecialchars(str_replace(array("\n"), '', trim(convert_urlencoded_unicode($str))));

使用代码☀️3字节表情符号工作,不要。 代码注释为/ hex为两者。

1 个答案:

答案 0 :(得分:0)

请勿触摸UTF-16。仅使用UTF-8。在MySQL中,UTF-8是CHARACTER SET utf8mb4

在UTF-16中,

为十六进制D83DDE0B,但您需要在utf8mb4中使用十六进制F09F988B

也许数据是由Java或其他来源创建的?

我们几乎没有理由在PHP中使用转换例程。