NSString 替换导致韩语或捷克语问题的字符

Che*_*vid 5 nsstring ios

我有一个小问题试图了解如何NSString在韩语或捷克语的情况下正确附加。

上下文:我向UITextField用户提供 a以输入一些信息,我想在文本字段中保留用户修改内容的日志,以便仅在字符串更改时保存字符串。这样做时,我使用UITextFieldDelegate协议

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *resultingString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    [(NSMutableDictionary *)self.currentModifiedObject setObject:resultingString forKey: @"textfield" ];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

对于大多数语言,一切都很好,但我最近收到了韩语和捷克语的报告,称组合字母存在问题,例如重音。在查看我在字典中记录的内容时,通过这种方法记录了通过键入字母并在其后立即添加重音而创建的带有重音的字母。

例如,在捷克语中:如果您在键盘上输入“Fideles?” 作为字母序列UITextField显示“Fideleš”,记录的字符串显示“Fideles\U02c7”,相当于键盘序列。

我很想知道从“Fideles\U02c7”键盘输入实际生成“Fideles”的正确方法。

感谢您的帮助,我希望有人可以帮助我解决这个问题。亲切的问候,大卫

我试过使用:

- (NSString *)precomposedStringWithCanonicalMapping
- (NSString *)precomposedStringWithCompatibilityMapping
Run Code Online (Sandbox Code Playgroud)

但是没有结果,结果字符串保持不变。