我有表Users (带有UTF8字符集和UTF8排序规则),它有lastName列(与表相同的字符集和排序规则)。当我直接从Navicat for MySQL将我的名字(Štěrba)插入到这个表和列中时,它在Navicat中正确显示,但在浏览器中显示得很糟糕(输出文档是UTF8,在mysql_connect()之后,我也使用了SET CHARACTER SET utf8):

但是,当我使用此查询从PHP执行此插入时:
INSERT INTO users (firstName, lastName) values ('Pavel', 'Štěrba');它在浏览器中显示正确,但在Navicat中它被保存如下:

显然,我不能直接从navicat编辑它,因为我会破坏它.你知道为什么会发生这种事吗?我是不是错过了编码?还是跟Navicat有关?谢谢你的小费!
发布于 2013-08-10 23:21:35
很有可能你做错了,而不是每个人都使用的工具。
不要通过查询来修改编码设置!使用字符集()。
您必须修复数据库中通过PHP获得的所有条目。
请注意,“设置字符集”是错误的,尽管它听起来是正确的。如果您不能使用上面的PHP函数,那么只需使用"SET NAMES utf8“即可!
发布于 2013-08-10 22:09:10
在SET NAMES utf8之后也使用SET CHARACTER SET utf8
我希望这能帮上忙
https://stackoverflow.com/questions/18166785
复制相似问题