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];