2014-02-23 30 views
0

對於我的生活我無法弄清楚這一點,我一直在瀏覽網頁,找不到答案,但也一直在編碼,所以我的大腦被炸。目前我在前面加上反向感嘆號來這樣在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字符befo重新我的字符串像這樣

"\U00a1random!"; 

我敢肯定我失去了一些愚蠢的東西。任何幫助將不勝感激。

+0

什麼是myValues? –

+0

用逗號和值插入表中的字符串。 –

+0

你確定你沒有試圖存儲「\ U00a1random!」用大寫U? –

回答

-1

我想通了。它存儲與前面加上所以,當我登錄數據庫中存儲的數據的實際Unicode字符字符串,它返回

"\u00A1random!" 

我以爲它會一直保存在變量"¡",而不是實際的Unicode。所以,當我選擇了從數據庫中的值並記錄它,它恢復,這是必要的,它的值是

"¡random!" 

回來給它後,我似乎就花所有的時間昨晚之後弄明白5分鐘內它,對不起,夥計們。

+0

「編譯器」沒有算出任何東西 - 它只能在它們被編碼的地方解釋字符串文字。但請注意,如果您使用NSLog記錄非ASCII字符,它很容易以Unicode轉義符號顯示。 –

+0

好的,謝謝你的信息。 –