所以这里有一个问题。
我有一个字符串
Белый Клык-0.fb2
NSString 方法长度返回 16
在核心数据中保存字符串后(后端 - sqlite)
NSString 方法长度返回 17,但视觉上字符串保持不变
Белый Клык-0.fb2
显然方法 isEqualToString: return NO
在花了很多时间进行实验之后,我确定问题出在这封信上:
й
删除这封信可以解决问题。
但它一直让我发疯,为什么会发生这样的事情?
这里的解决方法有效,但不满足我:
- stringByReplacingPercentEscapesUsingEncoding: - 需要在数据库查询中和之后转换字符串
- 音译整个字符串 - 有点黑客
这里是 dosnt 有效的解决方法:
- stringWithUTF8String
- 将转义的 UTF8 字符转换回其原始形式
请帮助我了解在 Core Data 中保存后字符串发生了什么。
还有更优雅的解决方案吗?