将非英语文本存储到sqlite中

时间:2011-01-17 07:44:22

标签: iphone sqlite unicode

我想将unicode数据存储到我的数据库中。实际上它是sanskrit.coz中的4行文本我是db编程的新手,我不知道如何将我的语言存储到db.i中已读过一些在论坛中的信息,但我不清楚将我的数据存储到数据库中 希望有人能在这里帮助我 提前谢谢你 巴兰

2 个答案:

答案 0 :(得分:1)

如果您使用的是sqlite C API,请确保数据采用UTF-8或UTF-16格式,然后使用sqlite_bind_text或sqlite_bind_text16进行绑定。

有关使用API​​的介绍,请参阅http://sqlite.org/cintro.html。特别是“1.1核心例程和对象的典型用法”。有关函数参考,请参阅http://sqlite.org/c3ref/bind_blob.html

例如:

const char sql[] = "INSERT INTO table (mytext) VALUES (?, ?);";
sqlite3_prepare_v2(db, sql, -1, &stmt, NULL)
sqlite3_bind_text(stmt, 1, myutf8text, -1, NULL)
sqlite3_step(stmt)
sqlite3_finalize(stmt)

答案 1 :(得分:1)

如果使用sqlite3_open创建数据库,则它是UTF-8编码的,或者如果使用sqlite3_open16创建,则它是UTF-16编码的。这是你应该关心的第一点。

而且,如果您尝试将UTF-8编码的字符串写入UTF-16编码数据库,则需要一个简单的MBCS到UNICODE转换器。或相反亦然。那么brofield的答案是有效的。