【发布时间】:2009-11-04 01:49:42
【问题描述】:
我有一个文件,内容如下:
INSERT INTO table VALUES (NULL,'° F','Degrees Fahrenheit');
INSERT INTO table VALUES (NULL,'° C','Degrees Celsius');
现在,为了解析这个,我有这样的东西:
NSString *sql = [NSString stringWithContentsOfFile:filename];
将此字符串打印到控制台看起来是正确的。然后,我想用它做一个实际的插入语句:
const char *sqlString = [query UTF8String];
const char *endOfString;
if (sqlite3_prepare_v2(db, sqlString + nextStatementStart, -1, &stmt, &endOfString) != SQLITE_OK) {
return NO;
}
此时,检查查询仍然返回正确的结果。即sqlite_sql(stmt)返回INSERT INTO table VALUES (NULL,'° F','Degrees Fahrenheit');
然后我用sqlite3_step(stmt); 运行它
此时,查看数据库会发现:
1|° F|Degrees Fahrenheit
我没有在任何地方使用任何 _16 函数(例如 sqlite_open16)。
编码问题在哪里?我该如何解决这个问题?
【问题讨论】:
标签: objective-c iphone cocoa sqlite