我将论坛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为两者。
答案 0 :(得分:0)
请勿触摸UTF-16。仅使用UTF-8。在MySQL中,UTF-8是CHARACTER SET utf8mb4
。
为十六进制
D83DDE0B
,但您需要在utf8mb4中使用十六进制F09F988B
。
也许数据是由Java或其他来源创建的?
我们几乎没有理由在PHP中使用转换例程。