我刚刚将我的mysql数据库从utf8转换为utf8mb4,因此支持Emojis,但现在我遇到了编码问题。如果我用php打印文本正常显示特殊字符,但它们在数据库中保存为LATIN1×
我遵循了本指南https://mathiasbynens.be/notes/mysql-utf8mb4
在php中,我在建立连接后设置了这样的字符集
mysqli_set_charset($mysqli, "utf8mb4");
在转换之前,ä被保存为ä,ö被保存为ö等等。
现在:ü - > Ã等等,所以常见的utf8编码问题。
mysql版本是5.5.46所以这不是问题
database is utf8mb4_unicode_ci
tabels are utf8mb4_unicode_ci
varchar and text columns are also utf8mb4_unicode_ci
答案 0 :(得分:2)
似乎
mysqli_set_charset($mysqli, "utf8mb4");
将charset更改为LATIN1而不是utf8mb4,但使用
$mysqli->query("set names utf8mb4");
工作正常