所以這是一個問題。核心數據保存後的字符串長度變化
我有一個字符串
Белый Клык-0.fb2
的NSString方法長度返回16
保存在覈心數據串之後(後端 - 源碼)
的NSString方法長度返回17,但在視覺上串留相同
Белый Клык-0.fb2
明顯的方法isEqualToString:r E打開NO
花費在實驗了很多時間後,我很fugure指出,問題是這封信:
й
刪除這封信解決問題。
但它讓我瘋狂,爲什麼這樣的事情發生?
這裏解決方法的作品,但不符合我:
- stringByReplacingPercentEscapesUsingEncoding: - 需要字符串轉換權和數據庫查詢後
- 音譯整串 - 有點兒本事
這裏解決方法dosnt工作:
- stringWithUTF8String
- Converting escaped UTF8 characters back to their original form
請幫我明白是怎麼回事用繩子後保存在覈心數據。
而我有更優雅的解決方案嗎?
這可能是[unicode normalization](http://unicode.org/reports/tr15/)相關問題。試試把你的coredata字符串與'[yourOriginalString decomposedStringWithCanonicalMapping]'進行比較,看看是否可行......(我已經測試過它,並且在你的例子中調用字符串時它會返回17的長度) – Alladinian 2013-02-25 08:57:39
謝謝!這真的很奏效,但我甚至沒有聽說過經典映射。你能添加一個答案嗎?我標記它是多麼正確的答案。 – Wert1go 2013-02-25 09:17:46
如果您確實需要保留包含組成字符的原始字符串,則必須將其存儲爲NSData:'[myString dataUsingEncoding:NSUTF16StringEncoding]' – 2013-02-25 09:39:45