作者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