我正在建立一個SQLite查詢String
與String.format
並將它傳遞到SQLiteDatabase.rawQuery
。我在最後傳遞的整數參數被硬編碼爲零(我正在尋找大於零的任何值)。這在我所有的測試中都能正常工作,但我收到了現場的崩潰報告。我正在使用不提供詳細系統/環境信息的崩潰報告網站。這裏是崩潰的代碼:SQLiteDatabase.rawQuery中的字符串編碼錯誤
String query = String.format("SELECT * FROM %s WHERE %s > %d",
TableName,
ColumnName,
0);
Cursor c = db.rawQuery(query, null);
所引發的異常是:
android.database.sqlite.SQLiteException: no such column: Û°: , while
compiling: SELECT * FROM TableName WHERE ColumnName > Û°
而且最後幾行的堆棧跟蹤崩潰之前:
SQLiteCompiledSql.java:-2:in android.database.sqlite.SQLiteCompiledSql.native_compile
SQLiteCompiledSql.java:68:in android.database.sqlite.SQLiteCompiledSql.<init>
SQLiteProgram.java:143:in android.database.sqlite.SQLiteProgram.compileSql
這看起來像是一個編碼錯誤。但是,我不知道如何判斷這是什麼原因。我使用SQLiteOpenHelper
作爲創建並連接到我的數據庫的高級方式,所以我沒有明確設置編碼。此外,錯誤報告很少,但它們只在運行ICS的設備上纔有,因此這可能是ICS中SQLite類默認值中的新內容。
嘿豐富,我只是想知道...你仍然越來越奇怪的編碼錯誤? –