将倒置的感叹号插入sqlite表

时间:2014-02-23 07:34:07

标签: objective-c sqlite

对于我的生活,我无法弄清楚这一点,我一直在浏览网页,找不到答案,但也整天都在编码,所以我的大脑都在炒。目前我正在将倒置的感叹号添加到像这样的字符串

NSString *randomString = [NSString stringWithFormat:@"%@random!", @"\u00A1"]; 

记录我想要的东西

@"¡random!"

然后我将它插入我的sqlite数据库并使用上面给出的字符串值,如此

if(!(self.dbOpen))
{
    [self openDatabaseWithSQLName:@"SMCachedDB.db"];
}

sqlInsertStatement = [NSString stringWithFormat:@"INSERT INTO %@(%@) VALUES(%@)", useTable, myColumns, myValues];
char *error;

// Execute statement
if(sqlite3_exec(cachedDatabase, [sqlInsertStatement UTF8String], NULL, NULL, &error) == SQLITE_OK)
{
    hasBeenAdded = YES;
    NSLog(@"Entry added into '%@' table", useTable);
} else {
    NSLog(@"ERROR: %s", sqlite3_errmsg(cachedDatabase));
    NSLog(@"ERROR inserting '%@'", myValues);
    hasBeenAdded = NO;
}

字符串在“myValues”字符串中,所以一切都正确存储但是当我选择返回值时,我会在字符串之前得到unicode字符,如此

"\U00a1random!";

我确定我错过了一些愚蠢的话。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:-1)

我明白了。它存储字符串,前面加上实际的unicode字符,所以当我记录存储在数据库中的数据时,它返回

"\u00A1random!"

我认为它会将变量存储为"¡"而不是实际的unicode。因此,当我从数据库中选择值并记录它时,它返回了必要的值

"¡random!"

在回到它之后,我似乎在昨晚花了所有时间在5分钟内搞清楚了,对不起家伙。