【问题标题】:Special Characters from SQLite DBSQLite DB 中的特殊字符
【发布时间】:2011-02-15 00:40:42
【问题描述】:

我从一个 sqlite 数据库读取到我的 iphone 应用程序。正如我在调试器中看到的 char* 数据类型中的那样,在文本中有时会出现“xf2”或“xe0”之类的特殊字符。当我尝试使用 initWithUTF8String 将字符转换为 NSString 对象时,我得到一个 nil。

如何转换这些特殊字符?

【问题讨论】:

    标签: iphone objective-c sqlite


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-04-23
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      相关资源
      最近更新 更多