这天做个页面,需要将图片表里面图片的标签拉出来拆分好后去重按自然排序。结果很囧,应该排序的结果是0-9-A-z-阿-中,但是中文部分就是很乱。再找问题,结果发现自然排序是按照字符编码的顺序来排列。由于当前页面是UTF-8编码,UTF-8大家应该清楚吧,我称为是“电脑码”,给电脑看的~汗…… 如果换成GBK或者GB2312编码就不会这样了,这跟汉字在字符集的编码有关。比如”人”这个字,在GBK和GB2312中就是按它的拼音”ren”的字母顺序排到第N个位置,而UTF-8编码就不是这样了(没有具体研究怎么排的)。OK 知道原因就简单了,排序前将字符转到GBK,排序完了再转回来就OK。

[......]