作者neverfly (neverfly)
站內Programming
標題[問題] UTF8的中文排序問題
時間Fri Jan 22 11:33:03 2010
我寫了一個網站,編碼是用UTF8的方式,
但姓名的部份如果用UTF8的字碼下去排序的話,
既不是照注音排也不是照筆劃排,
對於中文使用者來說其實很不直覺。
如果將UTF8轉成Big5再排序的話,
是會按照筆劃排序,
但這樣根本是在開倒車,對其他語系的支援度就變差了。
請問一下以UTF8的中文編碼而言,有照注音或筆劃排序的解決方案嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.55.7
1F:推 buganini:當然不能把資料轉成big5啊 220.135.231.23 01/22 11:40
2F:→ buganini:但sort key可以用big5 220.135.231.23 01/22 11:40
3F:→ buganini:也可以拿注音去做sort key 220.135.231.23 01/22 11:41
4F:→ buganini:怎麼轉注音就是另一個故事了 而且 220.135.231.23 01/22 11:41
5F:→ buganini:筆劃有唯一性 破音字你打算怎麼處理呢? 220.135.231.23 01/22 11:42
6F:推 LPH66:唔..其實仔細看可以發現Unicode是以部首排序 140.112.28.92 01/22 11:55
7F:→ neverfly:呃…照部首排的方式似乎不是我們所習慣的 59.120.55.7 01/22 12:20
8F:→ neverfly:所以才想說要怎麼去改變它的排列順序 59.120.55.7 01/22 12:21
9F:→ neverfly:因為事實上我也只是要排姓名而已 59.120.55.7 01/22 12:21
10F:→ neverfly:我看手邊的Nokia手機,通訊錄也是照注音 59.120.55.7 01/22 12:22
11F:→ neverfly:所以才想說也許有現成的方式可以用注音排 59.120.55.7 01/22 12:22
12F:→ mantour:其實字典都是照部首排呀XD140.112.213.158 01/22 19:44
13F:推 but:我的通訊錄混很多日文漢字在裡面 220.132.164.65 01/22 23:06
14F:→ but:照注音排的手機根本是找碴.... 220.132.164.65 01/22 23:06
15F:推 Huangs:照部首排 正是 中文的"字典順序"啊 59.115.136.52 01/24 02:54
16F:推 Huangs:照注音排才奇怪。 59.115.136.52 01/24 02:56
17F:推 bobju:user defined function, 自訂一個排序函式, 58.115.151.184 01/26 08:55
18F:→ bobju:以big5的筆劃數排, 註冊到DBMS下. 58.115.151.184 01/26 08:55
19F:→ bobju:然後在下SQL時,以 order by u2b(name) 排序. 58.115.151.184 01/26 08:56