objective-c – 保存在Core Data中后的字符串长度更改
所以这是一个问题.
我有一个字符串 Белый Клык-0.fb2 NSString方法长度返回16 在Core Data中保存字符串后(后端–sqlite) NSString方法的长度返回17,但在视觉上字符串保持不变 Белый Клык-0.fb2 显然方法是isEqualToString:返回NO 花了很多时间在实验中,我很遗憾这个问题是这封信: й 删除此信解决问题. 但它让我疯狂,为什么会发生这样的事情? 这里的解决方法有效,但不满足我: > stringByReplacingPercentEscapesUsingEncoding: – 需要在db查询中和之后转换字符串 以及dosnt工作的解决方法: > stringWithUTF8String 在Core Data中保存后,请帮助我了解字符串发生了什么. 还有更优雅的解决方案吗? 解决方法
这个问题可能与
unicode normalization有关.所以Coredata似乎存储了已分解的字符串(因此?对于字母计数为2 – 1,对于字母为1计数)这就是为什么你得到长度差异的原因.如果在将其与Coredata返回的字符串进行比较之前尝试分解原始字符串,则应该可以正常工作:
[yourOriginalString decomposedStringWithCanonicalMapping] 现在,背后的原因超出了我的专业领域.我经常使用coredata来管理我的模型,并且曾经多次使用希腊语/俄语字符串,从未遇到过这样的问题.如果任何人都可以对此进行扩展并获得一些启示,我也会对这个问题非常感兴趣. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |