【发布时间】:2016-05-20 03:56:18
【问题描述】:
我收到了一个字符串,其中可能有一个 unicode 撇号 (\u2019),我必须用标准撇号(普通的旧“'”)替换它。我通常使用 stringByReplacingOccurrencesOfString 来做这种事情,但尝试这样做不起作用:
sMyString = [sMyString stringByReplacingOccurrencesOfString:@"\\u2019" withString:@"'"];
我猜它不起作用是有道理的,因为在 NSString 内部表示撇号的实际值将是数字。有人知道怎么做吗?
【问题讨论】:
-
字符串是否有一个实际的
’字符,还是有字符\、u、2、0、1和9? -
当我在 Xcode 的控制台中使用 po sMyString 时,它显示为一个实际的 ' 字符,尽管如您所展示的那样弯曲。但是,当该字符串是字典的一部分并且我使用 po 打印出字典时,它会显示序列,所以 Mama's boy 看起来像:Mama\u2019s boy。我就是这样发现它的。
-
记录字典会导致
\uxxxx输出大量字符。这只是Apple混淆开发人员的愚蠢决定。听起来您的字符串具有实际的引号字符。我发布的答案应该可以满足您的要求。
标签: objective-c unicode replace nsstring nsstringencoding