java及mysql中文按拼音排序

针对MySQL数据库中中文排序问题,可以利用pinyin4j库将文本转为拼音进行排序。然而,对于多音字可能存在问题。若字段为GBK编码,直接按字段排序即可,否则需先转换为GBK编码再排序。
摘要由CSDN通过智能技术生成
java汉字按拼音排序
    public void test_sort_pinyin() {  
        Collator cmp = Collator.getInstance(java.util.Locale.CHINA);  
        String[] arr = { "张三", "李四", "王五", "赵六", "JAVA", "123", "$%$#", "哈哈A",  
                "1哈哈A", "1哈哈b", "1哈哈a", "哈哈", "哈", "怡情" };  
        List<String> list = Arrays.asList(arr);  
        Arrays.sort(arr, cmp);  
        System.out.println(list);  
    }  

据网友说某些字排序会有问题,可以用pinyin4j 开源项目(http://pinyin4j.sourceforge.net)先转换成拼音在排序,之前用过这个东西,如果是多音字的时候会有问题

mysql汉字按拼音排序

如果存储的字段采用的是GBK字符集,则直接order by column asc就可以,因为GBK编码就是按拼音排列的,如果是其他的编码,需要先转换成GBK,order by convert(column using gbk) asc




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值