当我从数据库中选取对象并运行 Zend 魔术函数 -> Order() 时,或者作为普通 SQL,例如,title,以及那些包含瑞典语字符的 åäö,因此将它们解释为 aao。它带有错误的排序,当它真正应该最后订购时要么是 a 要么是 o。
有人知道如何解决这个问题吗?看起来像个白痴,没有结果。
编辑: 数据库的排序规则是utf8_unicode_ci,编码是utf8。我试图更改为 utf8_swedish_ci 但没有成功。恐怕我需要保留 utf8,还是我别无选择?
最佳答案
您的 MySQL 数据库是否设置为使用正确的排序规则?我认为默认情况下它设置为瑞典语排序规则latin1_swedish_ci
:http://dev.mysql.com/doc/refman/5.5/en/charset-we-sets.html
但如果它被更改为其他东西(如 latin1
),它可能会以不同的方式排列重音字符。
这里有关于如何指定用于特定数据库、列或表的排序规则的说明:
http://dev.mysql.com/doc/refman/5.0/en/charset-syntax.html
编辑:瑞典语排序规则是您想要的:http://www.collation-charts.org/mysql60/mysql604.latin1_swedish_ci.html但您可能使用的是通用的:http://www.collation-charts.org/mysql60/mysql604.latin1_general_ci.html
关于mysql - O 和 Ö 与 Zend_Db 中的 ORDER 排序相同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5650919/