sqlite 的默认编码是unicode,可是没有排序编码,只提供了实现排序的接口。最近开发中的一个android项目用到sqlite,出现了纠结的问题,用中文字段须要按拼音首排序的时候顺序惨不忍睹。参阅了各类解决方案,有增长一个拼音字段的,有自建拼音库等解决方案,最终都以为不理想。java
后来翻了一下android的SQLite驱动提供的方法,发现能够设置本地化语言,以下:android
SQLiteDatabase db = getReadableDatabase(); db.setLocale(Locale.CHINESE);//设置本地化
调试发现查无数据,通过一通折腾,最后发如今SQL语句中排序时还须要指定使用本地化,以下:sql
SELECT * FROM ProfileInfo ORDER BY Name COLLATE LOCALIZED ASC
OK,排序正常按照中文拼音进行排序。编码