2010-05-03 85 views
1

我从一个sqlite数据库读取到我的iPhone应用程序。在文本中,有时会出现特殊字符,如'xf2'或'xe0',正如我在调试器中看到的char *数据类型。当我尝试通过使用initWithUTF8String将字符转换为NSString对象时,我得到了一个零。来自SQLite DB的特殊字符

如何转换这些特殊字符?

回答

0

它看起来像编码问题。当您使用©或®等符号时,您可以获得'xf2'或'xe0'。这些符号需要2个字节,并且sqlite可以将符号的每个字节解释为单独的符号。
所以,尽量不要使用initWithUTF8String,但initWithCString:

NSString *stringFromDB = [[NSString alloc] initWithCString:charsArrayFromDB 
                encoding:NSASCIIStringEncoding];