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);
}
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