2013-10-07 57 views
0

我在互聯網上到處搜索,但我還沒有找到答案。 我的代碼就像超越。 我將我的希臘字符從UITextField中取出,放入InsertPersonToDatabase func並將它們發送到數據庫。如何將希臘字符保存到iOS中的sqlite?

-(BOOL)insertPersonToDatabase:(const char *)_name :(const char *)_surname :(const char *)_age; 
{ 
    sqlite3 *database; 
     if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 
     { 
     const char *sqlStatement = [[NSString stringWithFormat:@"insert into person (name,surname,age) values ('%s','%s','%s')",_name,_surname,_age] UTF8String]; 
      NSLog(@"%s",sqlStatement); 
     char *zErrMsg = 0; 

     if (sqlite3_exec(database, sqlStatement, NULL, NULL, &zErrMsg)==SQLITE_OK) 
     { 
      NSLog(@"Row inserted!!"); 
     } 
     else 
     { 
      NSLog(@"Row DIDN'T inserted.."); 
      sqlite3_free(zErrMsg); 
      sqlite3_close(database); 
      return FALSE; 
     } 
     sqlite3_free(zErrMsg); 
    } 
    sqlite3_close(database); 
    return TRUE; 
} 

但NSLog的打印: 插入到人(姓名,年齡)VALUES('≈í√ü≈í¬±≈ì√Ö≈í√Π≈ì√ñ≈í¬™ ≈í¬± '' ≈í√ü≈í¬±≈ì√ë≈í,àÇ≈í,àë≈í¬•≈í,àë≈í¬∫≈í,àë≈ì√ë≈ì√ Ö≈íœÄ≈í√Π≈ì√ñ','25')這些是保存在我的數據庫中的值,而不是我在textfields中寫的希臘字符。

難道有人知道答案嗎?請幫忙!!!!
謝謝!

回答

0

參見NSLog incorrect encoding

的NSLog的%s格式是系統中的編碼,這似乎 永遠是和的MacRoman不是Unicode,所以在macroman編碼的,它只能顯示字符 。

所以,這個問題是不是在SQLite的代碼,它是在NSLog的

+0

唔...非常感謝您的回答。我會再次檢查!我希望你是對的,問題不在於編碼! – anvc

+0

@anvc歡迎您通知我檢查結果。 – BergP

+0

我檢查過,但是這些值(≈í√ü≈í¬±≈ì√Öíí)插入到數據庫字段中,而不僅僅是LSLog ... :( – anvc