Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在sqlite表中插入倒过来的感叹号_Objective C_Sqlite - Fatal编程技术网

Objective c 在sqlite表中插入倒过来的感叹号

Objective c 在sqlite表中插入倒过来的感叹号,objective-c,sqlite,Objective C,Sqlite,我一辈子都搞不懂这一点,我一直在浏览网页,找不到答案,而且整天都在编码,所以我的大脑都快崩溃了。目前,我正在将倒过来的感叹号添加到如下字符串中 NSString *randomString = [NSString stringWithFormat:@"%@random!", @"\u00A1"]; 它记录了我想要的东西 @"¡random!" 然后我将其插入sqlite数据库,并使用上面给出的字符串值,如下所示 if(!(self.dbOpen)) { [self openData

我一辈子都搞不懂这一点,我一直在浏览网页,找不到答案,而且整天都在编码,所以我的大脑都快崩溃了。目前,我正在将倒过来的感叹号添加到如下字符串中

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!";

我肯定我错过了一些愚蠢的事情。任何帮助都将不胜感激。

我知道了。它存储的字符串前面有实际的unicode字符,所以当我记录存储在数据库中的数据时,它会返回

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

"¡random!"

回到这里之后,我似乎在昨晚花了这么多时间之后的5分钟内就搞定了,对不起,伙计们。

一个附加了逗号和将要插入表中的值的字符串。您确定您没有尝试存储\U00a1random!大写U?是的,我只是检查我的代码以确保它。对于此记录,从MyTable中选择hexMyValue的输出是什么?如何显示该值?NSLog将以转义符号显示非ASCII字符。编译器没有发现任何问题-它只能在编码字符串时解释字符串文字。但请注意,如果您记录一个非ASCII字符,它很容易以Unicode转义符号显示。