我用gb2312和gb12345按拼音排序,结果最后一个也就是“冼”字为能排序成功。谁能帮我解决下呢?用java

如题所述

我估计你是不是把字符串安装GB2312编码转换成byte数组,然后按照byte数组的值排序的。如果这样的话就依赖与汉字在编码集中的编码在GBK编码中 周的编码为D6DC,冼的编码为D9FE,自然冼就排在了周的后面。GBK在这部分和GB2312应该是一样的。就是更大的GB18030在双字节编码部分也应该一样。你可以考虑使用一些开源的类库来完成,比如pinyin4j什么的,可以把汉字转换成拼音,然后按字母序排列就好了,不过对于多音字,排序还是可能存在一些偏差。追问

是的,我就是你说的那样。你能提供个例子给我吗?

追答

以前用过这个类库,不过手头没有现成的代码,给你的网址参考一下。
http://blog.csdn.net/pathuang68/article/details/6692882

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-16
字体分类(GBK PS CID真正的类型)字体
GB字体:
全称GB2312或GB2312-80中国是一个简化的字符集国家标准,整个字符集,称作“交换信息的中国的汉字编码 - 基本集,由美国国家标准化管理委员会中国发布,1981年5月1日。几乎所有的中国的制度和GB2312编码是说在大陆,新加坡等地也使用此编码。国际化的软件支持GB2312。
GB2312标准共包含6763中国字,恢复的中文字符,在GB2312“分区”处理每个区包含94个字符/符号表示也被称为区域代码。
01-09区作为一个特殊的符号。16-55区的3755中国文字总额汉字,按字母顺序排列; 3008 56-87
第2个回答  2013-04-16
你换成GBK排序试试
相似回答