0

我在互联网上到处搜索,但我还没有找到答案。我的代码就像超越。我从 UITextField 中取出我的希腊字符,将它们放入 InsertPersonToDatabase func 并将它们发送到数据库。

    -(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 打印: 插入人(姓名,姓氏,年龄)值('≈í√ü≈í¬±≈ì√Ö≈í√∏≈ì√ñ≈í¬™≈í¬±','≈í √ü≈í¬±≈ì√ë≈í,àÇ≈í,àë≈í¬•≈í,àë≈í¬∫≈í,àë≈ì√ë≈ì√Ö≈íœÄ≈í√∏≈ì √ñ','25')这些是保存在我的数据库中的值,而不是我在文本字段中写的希腊字符。

有人知道答案吗?请帮忙!!!!
谢谢!!

4

1 回答 1

0

请参阅NSLog 不正确的编码

NSLog 的 %s 格式说明符在系统编码中,它似乎总是 MacRoman 而不是 unicode,所以它只能显示 MacRoman 编码的字符。

所以,问题不在于 SQLite 代码,而在于 NSLog

于 2013-10-07T20:24:51.450 回答