我用gb2312和gb12345按拼音排序,结果最后一个也就是“冼”字为能排序成功。谁能帮我解决下呢?用java
答案:3 悬赏:10 手机版
解决时间 2021-03-13 05:01
- 提问者网友:夢醒日落
- 2021-03-13 02:09
我用gb2312和gb12345按拼音排序,结果最后一个也就是“冼”字为能排序成功。谁能帮我解决下呢?用java
最佳答案
- 五星知识达人网友:你哪知我潦倒为你
- 2021-03-13 02:45
我估计你是不是把字符串安装GB2312编码转换成byte数组,然后按照byte数组的值排序的。如果这样的话就依赖与汉字在编码集中的编码在GBK编码中 周的编码为D6DC,冼的编码为D9FE,自然冼就排在了周的后面。GBK在这部分和GB2312应该是一样的。就是更大的GB18030在双字节编码部分也应该一样。你可以考虑使用一些开源的类库来完成,比如pinyin4j什么的,可以把汉字转换成拼音,然后按字母序排列就好了,不过对于多音字,排序还是可能存在一些偏差。追问是的,我就是你说的那样。你能提供个例子给我吗?追答以前用过这个类库,不过手头没有现成的代码,给你的网址参考一下。
http://blog.csdn.net/pathuang68/article/details/6692882
http://blog.csdn.net/pathuang68/article/details/6692882
全部回答
- 1楼网友:刀戟声无边
- 2021-03-13 04:21
你换成GBK排序试试
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯