如何在NSString中使用非unicode字符查找和替换特定的unicode字符?

时间:2016-02-09 23:39:36

标签: objective-c unicode replace nsstring nsstringencoding

我被提供了一个字符串,其中可能包含unicode撇号(\ u2019),我必须将其替换为标准撇号(普通旧“'”)。我通常使用stringByReplacingOccurrencesOfString来做这种事情,但尝试这个不起作用:

sMyString = [sMyString stringByReplacingOccurrencesOfString:@"\\u2019" withString:@"'"];

有道理它不起作用我猜是因为在NSString内部表示撇号的实际值将是数字。有谁知道怎么做?

2 个答案:

答案 0 :(得分:1)

如果sMyString具有实际的字符,则执行以下操作:

sMyString = [sMyString stringByReplacingOccurrencesOfString:@"\u2019" withString:@"'"];

或:

sMyString = [sMyString stringByReplacingOccurrencesOfString:@"’" withString:@"'"];

这两个实际上都编译为相同的代码。编译期间\u2019替换。

答案 1 :(得分:0)

sMyString = [sMyString stringByReplacingOccurrencesOfString:@"\U2019" withString:@"'"];

请勿使用\U2019,否则会出错。