从sqlite读取unicode并创build一个NSString

我工作的iOS应用程序,我需要存储和从SQLite数据库中检索,具有下标的NSString的表示。 我可以在编译时用常量创build一个NSString:

@ “BR \ u2082_CCl \ u2084”

是2个下标,是4个下标。 什么即时存储在SQLite数据库是:

“BR \ u2082_CCl \ u2084”

但是我不知道该怎么做,将它重新转换成NSString。 数据从数据库中作为char *“Br \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'''''''删除额外的斜线在我的微弱实验中没有任何区别。 我需要一种方式让它回到NSString中 – 谢谢!

您需要NSString stringWithCString类方法或相应的initWithCString实例方法之一。

我解决了这个问题 – 清除错误检查清除 –

Unicodestring进入参数stringEncoded从数据库中,如:

“MgBr \ u2082_CH \ u2082Cl \ u2082”

 +(NSString *)decodeUnicodeBytes:(char *)stringEncoded { unsigned int unicodeValue; char *p, buff[5]; NSMutableString *theString; NSString *hexString; NSScanner *pScanner; theString = [[[NSMutableString alloc] init] autorelease]; p = stringEncoded; buff[4] = 0x00; while (*p != 0x00) { if (*p == '\\') { p++; if (*p == 'u') { memmove(buff, ++p, 4); hexString = [NSString stringWithUTF8String:buff]; pScanner = [NSScanner scannerWithString: hexString]; [pScanner scanHexInt: &unicodeValue]; [theString appendFormat:@"%C", unicodeValue]; p += 4; continue; } } [theString appendFormat:@"%c", *p]; p++; } return [NSString stringWithString:theString]; }