2011-04-13 30 views
2

當我從數據庫中拾取對象並運行Zend magic函數 - > Order()或純SQL(例如title)以及包含瑞典字符的那些åäö如此解釋他們爲aao。它帶有錯誤的排序,無論是a還是o當它真的應該最後排序。O和Ö與Zend_Db中的ORDER一樣具有相同的字符

任何人都有線索如何解決這個問題?看起來像一個白癡沒有結果。

編輯:數據庫的排序規則是utf8_unicode_ci,編碼是utf8。我試圖改爲utf8_swedish_ci,但沒有成功。恐怕我需要讓utf8離開,或者我沒有選擇嗎?

回答

2

您的MySQL數據庫是否設置爲使用適當的排序規則?我認爲默認情況下它設置爲瑞典語整理latin1_swedish_cihttp://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

+0

+1我最初誤讀,對不起。這正是他需要的。值得注意的是,排序的運行時轉換速度很慢。對於大型數據集,可以創建單獨的,用於排序的「latin1_swedish_ci」整理列。 – 2011-04-13 14:49:12

+0

這很簡單!我只需要將列更改爲latin1_swedish_ci,然後按照我的意願開始工作。有點恥辱,我沒有解決我自己的問題。 Thx快速響應。 – jarnesjo 2011-04-13 14:58:34

相關問題