1
我从一个sqlite数据库读取到我的iPhone应用程序。在文本中,有时会出现特殊字符,如'xf2'或'xe0',正如我在调试器中看到的char *数据类型。当我尝试通过使用initWithUTF8String
将字符转换为NSString
对象时,我得到了一个零。来自SQLite DB的特殊字符
如何转换这些特殊字符?
我从一个sqlite数据库读取到我的iPhone应用程序。在文本中,有时会出现特殊字符,如'xf2'或'xe0',正如我在调试器中看到的char *数据类型。当我尝试通过使用initWithUTF8String
将字符转换为NSString
对象时,我得到了一个零。来自SQLite DB的特殊字符
如何转换这些特殊字符?
它看起来像编码问题。当您使用©或®等符号时,您可以获得'xf2'或'xe0'。这些符号需要2个字节,并且sqlite可以将符号的每个字节解释为单独的符号。
所以,尽量不要使用initWithUTF8String,但initWithCString:
NSString *stringFromDB = [[NSString alloc] initWithCString:charsArrayFromDB
encoding:NSASCIIStringEncoding];