【发布时间】:2011-02-15 00:40:42
【问题描述】:
我从一个 sqlite 数据库读取到我的 iphone 应用程序。正如我在调试器中看到的 char* 数据类型中的那样,在文本中有时会出现“xf2”或“xe0”之类的特殊字符。当我尝试使用 initWithUTF8String 将字符转换为 NSString 对象时,我得到一个 nil。
如何转换这些特殊字符?
【问题讨论】:
标签: iphone objective-c sqlite
我从一个 sqlite 数据库读取到我的 iphone 应用程序。正如我在调试器中看到的 char* 数据类型中的那样,在文本中有时会出现“xf2”或“xe0”之类的特殊字符。当我尝试使用 initWithUTF8String 将字符转换为 NSString 对象时,我得到一个 nil。
如何转换这些特殊字符?
【问题讨论】:
标签: iphone objective-c sqlite
看起来像编码问题。当您有 © 或 ® 等符号时,您可以获得 'xf2' 或 'xe0'。这些符号需要 2 个字节,sqlite 可以将符号的每个字节解释为单独的符号。
所以,尽量不要使用 initWithUTF8String,而是使用 initWithCString:
NSString *stringFromDB = [[NSString alloc] initWithCString:charsArrayFromDB
encoding:NSASCIIStringEncoding];
【讨论】: