2010-11-25 35 views
15

我正在開發使用SQLite作爲後端的Android應用程序。確保Android上的SQLite的使用UTF-8字符集

我想,以確保所有的數據庫使用UTF-8表格。我怎樣才能做到這一點?

我曾嘗試:

CREATE TABLE myTable (_all_columns_definitions_) DEFAULT CHARSET=utf8; 

但是語法錯誤出現。

回答

17

鑑於SQLite的只支持UTF-8和UTF-16的編碼,你會發現Android是否會比UTF其他東西創建數據庫-8。 sqlite3_open默認以UTF-8創建數據庫,這就是Android可能使用的。

3

你需要利用encoding PRAGMA的:

PRAGMA encoding = "UTF-8"; 
+0

它仍然給了我這個錯誤:E /數據庫(1776):失敗1(近「PRAGMA」:語法錯誤)上0x217230準備「CREATE TABLE表時(ID整數主鍵,名稱文本不爲空,排序順序整數null,is_header integer(1)not null)PRAGMA encoding =「UTF-8」;' – dan 2010-11-25 11:31:50

+0

我認爲之前的錯誤是因爲在創建表時不能使用PRAGMA語句;你必須在創建數據庫時使用。問題是我不創建數據庫,Android在底層。那麼我怎麼能告訴Android創建數據庫設置UTF-8 – dan 2010-11-25 11:35:04

1

通過默認的Android的SQLite使用UTF-8。 我有特殊字符相同的問題,但因爲當我第一次啓動時填充數據庫時,我用另一個字符集使用txt文件。