【Kotlin】SQLite 以 BIG5 排序

參考資料 ----

BIG5 碼線上查詢系統


這是個山不轉路轉的作法 😝


繁體中文習慣以 BIG5 排序,但 SQLiteORDER BY 是依 UTF8 排序,既然如此,那我們就轉個彎,在資料表內新增一個欄位,存放 BIG5 內碼,當需要排序時,就 ORDER BY 這個 BIG5 內碼欄位。

 

例如:

我們有個資料表,存放考試科目,則建立 2 個欄位 exname(考試科目名稱)、exbig5,當新增一筆記錄時,就查出 exname 的中文 BIG5 內碼 並存入 exbig5;當需要排序時,就 ORDER BY exbig5


先產生中文字的 BIG5 內碼表(參考底下的相關筆記)


將內碼表置於 /專案目錄/asset/


MAP 讀入內碼表(這屬於耗時的工作,應交由 Thread、AsyncTask 或 Coroutine 執行)


新增儲存記錄時,查詢 exname 內(逐字)的 BIG5 內碼,所得到的字串存入 exbig5


之後的查詢,若需要排序 exname 時,就改排序 exbig5



相關筆記 ----

【C#】以程式列出 中文字 與 BIG5 內碼 的對應表



沒有留言:

張貼留言