gpt4 book ai didi

sqlite - 将 AIR 应用程序中的 SQLite 数据库编码更改为 UTF-8

转载 作者:IT王子 更新时间:2023-10-29 06:20:57 25 4
gpt4 key购买 nike

在 AIR 应用程序中,您可以通过 flash.data 类使用 SQLite。似乎默认情况下,创建的数据库的编码设置为 UTF-16le,这意味着文本数据以每个字符两个字节的形式存储,导致大量 ASCII 数据库内容的开销接近 100%。

SQLite 数据库的默认值是 UTF-8,假设 shell 程序 (sqlite3) 是指示性的。大概 Adob​​e 出于某种原因决定覆盖它,但如果可能的话,我不想浪费存储空间。

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 中,我手动将编码设置为 UTF-8。如果我的程序启动时数据库文件不存在,我会通过将该模板复制到我的数据库文件来创建它,然后继续打开并正常使用它。我已经确认 TEXT 数据现在按需要存储为 UTF-8。

关于sqlite - 将 AIR 应用程序中的 SQLite 数据库编码更改为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com