【发布时间】:2019-09-12 07:44:18
【问题描述】:
我遇到了国际(在本例中为韩语)NSString 值的问题。
程序的两个不同部分使用相同的输入字符串。第一部分找到需要突出显示的子字符串,将NSString 和突出显示的范围存储到数据库中。
程序的第二部分检索字符串并显示突出显示。
标记部分使用NSString 完成,该NSString 已使用NSString 上的precomposedStringWithCanonicalMapping 方法在Unicode 规范化形式C 中进行规范化。然后将NSRange 和NSString 存储到Core Data 数据库中。
图形突出显示是通过从数据库中检索NSRange和NSString,使用相同的方法将NSString放入同一个Form C中,使用它来初始化NSMutableAttributedString并使用@987654332 @ 设置其文本属性。
在这个阶段,程序崩溃了,因为NSMutableAttributedString 是 80 个字符长,而 NSString 是 81 个字符长..
NSAttributedString 没有precomposedStringWithCanonicalMapping 方法,我认为它会在内部更改表示,从而导致不同的编码和长度。
我能做什么?
是一种强制
NSAttributedString保持底层编码的方法吗?有没有办法将
NSRange从一种编码转换为另一种编码?
或者还有什么我可以做的吗?
【问题讨论】:
标签: ios cocoa unicode nsstring nsattributedstring