我已經導入數據到一個表,它似乎從排序你會得到什麼不同。你的默認排序規則是什麼?我的是utf8_general_ci。
請注意,即使您的西部看起來的信件,實際上,不是西方字母。例如,你的K實際上是unicode字符「希臘大寫字母KAPPA」。
mysql> show create table foo;
+-------+----------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------+
| foo | CREATE TABLE `foo` (
`z` text,
`a` text
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------+
mysql> select * from foo order by z,a collate utf8_general_ci;
+-------------+-------------------------------------------------+
| z | a |
+-------------+-------------------------------------------------+
| ΖΩΝΗ Α | Αγία Βαρβάρα |
| ΖΩΝΗ Α | Αγία Παρασκευή |
| ΖΩΝΗ Α | Αγιοι Ανάργυροι |
| ΖΩΝΗ Α | Αγιος Στέφανος |
| ΖΩΝΗ Α | Αιγάλεω |
| ΖΩΝΗ Α | Ανθούσα |
| ΖΩΝΗ Α | Ανοιξη |
| ΖΩΝΗ Α | Ανω Λιόσια |
| ΖΩΝΗ Α | Αχαρνές (Μενίδι) |
| ΖΩΝΗ Α | Βριλήσσια |
| ΖΩΝΗ Α | Γαλάτσι |
| ΖΩΝΗ Α | Γέρακας |
| ΖΩΝΗ Α | Γλυκά Νερά |
| ΖΩΝΗ Α | Διόνυσος |
| ΖΩΝΗ Α | Δροσιά |
| ΖΩΝΗ Α | Εκάλη |
| ΖΩΝΗ Α | Ζεφύρι |
| ΖΩΝΗ Α | Ηράκλειο |
| ΖΩΝΗ Α | Θρακομακεδόνες |
| ΖΩΝΗ Α | Ιλιον |
| ΖΩΝΗ Α | Κηφισιά |
| ΖΩΝΗ Α | Κρυονέρι |
| ΖΩΝΗ Α | Λυκόβρυση |
| ΖΩΝΗ Α | Μαρούσι |
| ΖΩΝΗ Α | Μελίσσια |
| ΖΩΝΗ Α | Νέα Ερυθραία |
| ΖΩΝΗ Α | Παλλήνη |
| ΖΩΝΗ Α | Παπάγου |
| ΖΩΝΗ Α | Πεντέλη |
| ΖΩΝΗ Α | Περιστέρι |
| ΖΩΝΗ Α | Πετρούπολη |
| ΖΩΝΗ Α | Πεύκη |
| ΖΩΝΗ Α | Ροδόπολη |
| ΖΩΝΗ Α | Σταμάτα |
| ΖΩΝΗ Α | Φιλοθέη |
| ΖΩΝΗ Α | Χαϊδάρι |
| ΖΩΝΗ Α | Χαλάνδρι |
| ΖΩΝΗ Α | Χαλκηδόνα |
| ΖΩΝΗ Α | Χολαργός |
| ΖΩΝΗ Α | Ψυχικό |
| ΖΩΝΗ Β | Αγία Σοφία |
| ΖΩΝΗ Β | Αγιος Βασίλειος |
| ΖΩΝΗ Β | Αγιος Δημήτριος(Μπραχάμι) |
| ΖΩΝΗ Β | Αλιμος |
| ΖΩΝΗ Β | Ανω Γλυφάδα |
| ΖΩΝΗ Β | Αργυρούπολη |
| ΖΩΝΗ Β | Βάρη |
| ΖΩΝΗ Β | Βάρκιζα |
| ΖΩΝΗ Β | Βούλα |
| ΖΩΝΗ Β | Βουλιαγμένη |
| ΖΩΝΗ Β | Βύρωνας |
| ΖΩΝΗ Β | Γλυφάδα |
| ΖΩΝΗ Β | Δάφνη |
| ΖΩΝΗ Β | Ελληνικό |
| ΖΩΝΗ Β | Ζωγράφου |
| ΖΩΝΗ Β | Ηλιούπολη |
| ΖΩΝΗ Β | Καβούρι |
| ΖΩΝΗ Β | Καισαριανή |
| ΖΩΝΗ Β | Καλλιθέα |
| ΖΩΝΗ Β | Καλλίπολη |
| ΖΩΝΗ Β | Καμίνια |
| ΖΩΝΗ Β | Καστέλα |
| ΖΩΝΗ Β | Νέα Σμύρνη |
| ΖΩΝΗ Β | Παλαιό Φάληρο |
| ΖΩΝΗ Β | Υμηττός |
+-------------+-------------------------------------------------+
65 rows in set (0.00 sec)
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from foo order by z,a collate utf8_general_ci;
+-------------+-------------------------------------------------+
| z | a |
+-------------+-------------------------------------------------+
| ΖΩΝΗ Α | Αγία Βαρβάρα |
| ΖΩΝΗ Α | Αγία Παρασκευή |
| ΖΩΝΗ Α | Αγιοι Ανάργυροι |
| ΖΩΝΗ Α | Αγιος Στέφανος |
| ΖΩΝΗ Α | Αιγάλεω |
| ΖΩΝΗ Α | Ανθούσα |
| ΖΩΝΗ Α | Ανοιξη |
| ΖΩΝΗ Α | Ανω Λιόσια |
| ΖΩΝΗ Α | Αχαρνές (Μενίδι) |
| ΖΩΝΗ Α | Βριλήσσια |
| ΖΩΝΗ Α | Γαλάτσι |
| ΖΩΝΗ Α | Γέρακας |
| ΖΩΝΗ Α | Γλυκά Νερά |
| ΖΩΝΗ Α | Διόνυσος |
| ΖΩΝΗ Α | Δροσιά |
| ΖΩΝΗ Α | Εκάλη |
| ΖΩΝΗ Α | Ζεφύρι |
| ΖΩΝΗ Α | Ηράκλειο |
| ΖΩΝΗ Α | Θρακομακεδόνες |
| ΖΩΝΗ Α | Ιλιον |
| ΖΩΝΗ Α | Κηφισιά |
| ΖΩΝΗ Α | Κρυονέρι |
| ΖΩΝΗ Α | Λυκόβρυση |
| ΖΩΝΗ Α | Μαρούσι |
| ΖΩΝΗ Α | Μελίσσια |
| ΖΩΝΗ Α | Νέα Ερυθραία |
| ΖΩΝΗ Α | Παλλήνη |
| ΖΩΝΗ Α | Παπάγου |
| ΖΩΝΗ Α | Πεντέλη |
| ΖΩΝΗ Α | Περιστέρι |
| ΖΩΝΗ Α | Πετρούπολη |
| ΖΩΝΗ Α | Πεύκη |
| ΖΩΝΗ Α | Ροδόπολη |
| ΖΩΝΗ Α | Σταμάτα |
| ΖΩΝΗ Α | Φιλοθέη |
| ΖΩΝΗ Α | Χαϊδάρι |
| ΖΩΝΗ Α | Χαλάνδρι |
| ΖΩΝΗ Α | Χαλκηδόνα |
| ΖΩΝΗ Α | Χολαργός |
| ΖΩΝΗ Α | Ψυχικό |
| ΖΩΝΗ Β | Αγία Σοφία |
| ΖΩΝΗ Β | Αγιος Βασίλειος |
| ΖΩΝΗ Β | Αγιος Δημήτριος(Μπραχάμι) |
| ΖΩΝΗ Β | Αλιμος |
| ΖΩΝΗ Β | Ανω Γλυφάδα |
| ΖΩΝΗ Β | Αργυρούπολη |
| ΖΩΝΗ Β | Βάρη |
| ΖΩΝΗ Β | Βάρκιζα |
| ΖΩΝΗ Β | Βούλα |
| ΖΩΝΗ Β | Βουλιαγμένη |
| ΖΩΝΗ Β | Βύρωνας |
| ΖΩΝΗ Β | Γλυφάδα |
| ΖΩΝΗ Β | Δάφνη |
| ΖΩΝΗ Β | Ελληνικό |
| ΖΩΝΗ Β | Ζωγράφου |
| ΖΩΝΗ Β | Ηλιούπολη |
| ΖΩΝΗ Β | Καβούρι |
| ΖΩΝΗ Β | Καισαριανή |
| ΖΩΝΗ Β | Καλλιθέα |
| ΖΩΝΗ Β | Καλλίπολη |
| ΖΩΝΗ Β | Καμίνια |
| ΖΩΝΗ Β | Καστέλα |
| ΖΩΝΗ Β | Νέα Σμύρνη |
| ΖΩΝΗ Β | Παλαιό Φάληρο |
| ΖΩΝΗ Β | Υμηττός |
+-------------+-------------------------------------------------+
更新:
確定。我導入了你的轉儲文件。
您的問題是表中包含錯誤的數據。它實際上是雙重編碼的utf8。
考慮使用phpmyadmin的表:你應該看到垃圾,而不是文字。
你可能有一個錯誤在你的PHP代碼,你忘了發出「組名稱UTF8」或mysql_set_charset(「UTF-8」)。插入時你有同樣的錯誤。
因此,當你發出
INSERT 'Αγία Παρασκευή'
PHP發送UTF-8編碼的數據到MySQL。但MySQL相信這是拉丁文1。所以,它再次將其轉換爲utf8,並且表中包含垃圾。
當您選擇時,MySQL UTF8轉換回latin1的,但是這實際上給你你原來發送utf8的,所以它在你的應用程序中正確顯示。
但表的內容是垃圾,分類垃圾順序;)
首先,你需要修復的bug在你的代碼。
然後,您需要導出這些表(您給出的文件正常工作),放下它們,然後使用正確的字符集(在文件頂部添加一個SET NAMES utf8)重新導入它們。
更新2:
如果你想知道的數據是不是垃圾,也有簡單的技巧:
SELECT upper(yourcolumn) (or lower()...)
SELECT char_length(yourcolumn)
如果它的工作原理(即,你得到正確的大寫或小寫字母並以字符正確的長度,那麼就意味着數據良好和mysql的理解是
常用的伎倆來檢查,如果你的MySQL連接被正確配置,將發行(在你的PHP代碼)這個查詢:
SELECT char_length('é'), octet_length('é'), upper('é')
+-------------------+--------------------+-------------+
| char_length('é') | octet_length('é') | upper('é') |
+-------------------+--------------------+-------------+
| 1 | 2 | É |
+-------------------+--------------------+-------------+
當然,你可以做
SHOW VARIABLES LIKE '%character%';
我用phpmyadmin和mysql的控制檯。
什麼是你查詢的樣子,什麼是這個數據的到來,從表中的字符集/歸類? –
一切都在utf8中,數據庫,表和php文件。 – bikey77
我的查詢是:SELECT * FROM地區ORDER BY區,面積 – bikey77