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,排序正常按照中文拼音進行排序。編碼