0

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

在 Navicat 中正确,在浏览器中错误

但是当我用这个查询从 PHP 插入时:

INSERT INTO users (firstName, lastName) values ('Pavel', 'Štěrba');

它在浏览器中正确显示,但在 Navicat 中它是这样保存的:

在 Navicat 中错误,在浏览器中正确

显然,我不能直接从navicat 编辑它,因为我会破坏它......你知道吗,为什么会发生这种情况?我错过了某个地方的编码吗?还是 Navicat 的问题?感谢您的提示!

4

2 回答 2

1

很有可能你做错了,而不是每个人都使用的工具。

不要通过查询摆弄编码设置!使用mysql_set_charset()

您必须修复数据库中通过 PHP 到达的所有条目。

请注意,“SET CHARACTER SET”是错误的,尽管它听起来是正确的。如果您无法使用上述 PHP 函数,您应该只使用“SET NAMES utf8”!

于 2013-08-10T23:21:35.057 回答
0

SET NAMES utf8之后也使用SET CHARACTER SET utf8

我希望这有帮助

于 2013-08-10T22:09:10.283 回答