使用MySQL时出现UTF8问题

时间:2011-11-12 19:59:32

标签: php mysql character-encoding

我知道之前有人问过这件事。但是我已经用尽了我能找到的答案中给出的选项,所以我会再次提出问题,希望有些事情我忽略了。

首先,我的文件是UTF8编码的,我的XML标头(我使用的是XHTML)将页面声明为UTF8。

其次,连接数据库后我做的第一件事就是发送查询“SET NAMES utf8”。

我还执行了这句话:“SHOW VARIABLES LIKE'character_set%'”并将所有这些变量设置为utf8。

我已经在每个涉及的表上执行了SHOW CREATE TABLE table_name,并确保它们的字符集是utf8。

当我查看数据库中的值时,它看起来像UTF8编码,代码以&开头。这感觉不对,我不知道他们为什么这样存放。我确实尝试用PHP的utf8_decode在我的页面上回显它们,但这不起作用。

我还能做些什么?

(如果标题中的问题不明确,äå和ö等字符在浏览器中无法正常显示。)

3 个答案:

答案 0 :(得分:1)

行。这是一个PHP问题,正如所建议的那样,它源于我错误地使用htmlentities而不是htmlspecialchars。使用这些功能和utf8字符时要洁净! htmlspecialchars是你可能想要的。

答案 1 :(得分:0)

你试过吗

header('Content-Type: text/html; charset=utf-8');

答案 2 :(得分:0)

当你向数据库插入东西时,通过utf8_decode()运行它,当你从数据库中取出结果时,通过utf8_encode()运行它。

还要确保在浏览器编码设置中选择了UTF-8编码或自动检测。