在AIR應用程序中,您可以通過flash.data類使用SQLite。看起來,默認情況下,創建的數據庫的編碼設置爲UTF-16le,這意味着文本數據每個字符存儲兩個字節,導致ASCII大量數據庫內容接近100%的開銷。將AIR應用程序中的SQLite數據庫編碼更改爲UTF-8
假設shell程序(sqlite3)是指示性的,SQLite數據庫的默認值是UTF-8。據推測,由於某種原因,Adobe已決定重寫此內容,但如果可能的話,我寧願不要浪費存儲空間。
A PRAGMA encoding = "UTF-8";
在向數據庫寫入任何內容之前的聲明通常會解決問題,但它也會出現that's not allowed in AIR。
我現在的解決方法是使用我提前創建並綁定到應用程序中的「template.db」。在這個template.db中,我手動將編碼設置爲UTF-8。如果數據庫文件在我的程序啓動時不存在,我通過將該模板複製到我的數據庫文件來創建它,然後繼續打開並正常使用它。根據需要,我已經確認TEXT數據存儲爲UTF-8。
我還沒有看到任何不良影響,但這是hackish。有沒有更好的方法將編碼設置爲UTF-8?或者出於某種原因它是一個糟糕的想法?
不要以爲你找到了這個問題的答案?我現在在同一條船上。 – fizban
除了我的解決方法之外,沒有。它工作得很好,但它用於生產代碼。 –
我建議您將您的解決方法添加爲答案,然後接受它。 –