2012-06-17 109 views
0

我在phpMyAdmin中设置了一个表格。我没有改变这些字符或任何东西。我在新行插入了一个文本,当我尝试选择该行并使用PHP输出时,字母显示为however,但是如果我尝试编辑phpMyAdmin中的字段,则字母显示正确。我做错了,phpMyAdmin没有正确的做什么?ÆØÅ在MySQL中无法正确显示

+0

什么是您的表/字段的字符集,以及您在PHP中使用的字符集是什么?这听起来像是数据库或客户端正在使用不包含这些字符的字符集。 – Ben

+0

我有类似的麻烦。当我用应用程序中的这些字符上传文本时,它们似乎并没有在线添加到我的SQL表中。 – Stagleton

+0

以下是这些字符集: –

回答

3

如果你的PHP文件已经是UTF-8编码的改变您的查询的字符集,你应该告诉你的数据库,你需要UTF-8 。而不是摆弄MySQL的配置,只要告诉你的连接对象,你期望的是哪个字符集,数据库会为你完成剩下的工作。

这是一个mysqli的连接对象的例子:

$db = new mysqli($dbHost, $dbUser, $dbPw, $dbName); 
$db->set_charset("utf8"); 

之后你的查询将返回UTF-8编码的结果。

+0

这确实奏效!我发现它是utf8,但为什么在phpMyAdmin中没有utf8作为整理的替代方法?我会如何正确地做这件事?我想最好是将数据正确保存在第一位?速度有没有影响? –

+0

@ Hogwarts的学生 - 排序规则并不决定字符串是如何存储的,它只决定两个字符串的比较是如何完成的(至少我是这么理解的)。 – martinstoeckli

+0

是的,我现在正在阅读。嗯,他们为什么不能像我们在HTML中那样拥有一个master-charset:UTF-8 ... –

0

首先,你要确定它是否是浏览器的charset这是错误的,或MySQL。 尝试将浏览器中的字符集交换到utf8,或者如果它已经是iso-8859。

如果不解决它试图通过做

SET CHARACTER SET charsetname; 
+0

附近使用正确的语法。如果我这样做,我会得到一个错误。 –