将AIR应用程序中的SQLite数据库编码更改为UTF-8
在AIR应用程序中,您可以通过flash.data类使用SQLite.看来,默认情况下,创建的数据库的编码设置为UTF-16le,这意味着文本数据以每个字符两个字节存储,导致ASCII重的数据库内容几乎100%的开销.
假设shell程序(sqlite3)是指示性的,SQLite数据库的默认值为UTF-8.大概Adobe已经决定用某种原因来覆盖它,但是如果可能的话我宁愿不要浪费这个空间. PRAGMA encoding =“UTF-8”;在将任何数据写入数据库之前的声明通常会解决问题,但也可以出现that’s not allowed in AIR. 我现在的解决方法是使用我之前创建并捆绑到应用程序中的“template.db”.在这个template.db中,我手动将编码设置为UTF-8.如果数据库文件在我的程序启动时不存在,我通过将该模板复制到我的数据库文件中创建它,然后继续打开并正常使用它.我已经确认,根据需要将TEXT数据存储为UTF-8. 我还没有看到任何不良影响,但这是黑客.有没有更好的方式将编码设置为UTF-8?还是因为某种原因是坏主意? 没有找到其他解决方法或答案,我发布我的解决方法作为答案.在过去两年的PlayBook应用程序中,它运行正常,因此可能没有意外的副作用,至少在这种环境中:我现在的解决方法是使用我之前创建并捆绑到应用程序中的“template.db”.在这个template.db中,然后继续打开并正常使用它.我已经确认TEXT数据现在根据需要存储为UTF-8. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |