我估计你是不是把字符串安装GB2312编码转换成byte数组,然后按照byte数组的值排序的。如果这样的话就依赖与汉字在编码集中的编码在GBK编码中 周的编码为D6DC,冼的编码为D9FE,自然冼就排在了周的后面。GBK在这部分和GB2312应该是一样的。就是更大的GB18030在双字节编码部分也应该一样。你可以考虑使用一些开源的类库来完成,比如pinyin4j什么的,可以把汉字转换成拼音,然后按字母序排列就好了,不过对于多音字,排序还是可能存在一些偏差。
追问是的,我就是你说的那样。你能提供个例子给我吗?
追答以前用过这个类库,不过手头没有现成的代码,给你的网址参考一下。
http://blog.csdn.net/pathuang68/article/details/6692882