如何正确阅读和打印SQLite中的重音字符?

时间:2012-02-13 11:44:40

标签: iphone objective-c cocoa-touch special-characters

嗨,我在sqlite中创建了一个iPhone应用程序数据库

在数据库中有一个单词crème(带有特殊字符(è)

但是当使用select语句检索这个单词时,它显示为log

enter image description here

并在表格视图单元格中

enter image description here

那么如何在tableview单元格中打印特殊字符“è”?

2 个答案:

答案 0 :(得分:4)

使用它来从数据库中获取数据 -

NSString *col1 = [NSString stringWithCString:(char *)sqlite3_column_text(compiledStatement, 0) encoding:NSUTF8StringEncoding];

并在UILabel中显示col1。

不要相信NSLog它会将unicode字符显示为\ U221a或类似的东西..只需将这些字符串传递给UILabel就可以了。

答案 1 :(得分:2)

您必须将字符串转换为拉丁编码的CString,然后将cstring重新转换为utf-8

NSString *notes = [item objectForKey:@"notes"] ;

const char *n_c_string =[notes cStringUsingEncoding:NSISOLatin1StringEncoding];        
NSString *n = [NSString stringWithCString:notes_c_string encoding:NSUTF8StringEncoding];