【发布时间】:2014-08-11 06:53:11
【问题描述】:
我在 SO 上尝试(搜索)各种可能的解决方案,但徒劳无功。他们中的大多数只是简单地替换所有出现的反斜杠,并且不尊重本应不受影响的反斜杠。
例如,如果我有一个 嗨,那就是我。你好吗?,应该是嗨,是我。你好吗?。但是,如果有人试图通过 ASCII 艺术来发挥创意,比如
\\// \\// \\//
//\\ //\\ //\\
(哇,即使如此,我也不会让我按原样添加文本,上面的文本需要额外的反斜杠才能正确显示。)
我不能使用[myString stringByReplacingOccurrencesOfString:@"\\" withString:@""];,因为它将替换所有反斜杠。我不想那样。
我希望字符串按原样显示。
注意:此处讨论的字符串是从 Web 服务作为 JSON 接收的 NSDictionarys 中的值。用于聊天客户端等服务,因此正确处理文本很重要。
超重要提示:我愿意接受所有想法,例如库函数、正则表达式、人类牺牲,只要能完成工作。
【问题讨论】:
-
您在 NSLog 语句中看到的反斜杠字符在您的数据中实际上不存在的赌注是什么?我建议您发布一个示例并描述您是如何创建它的。
-
请记住,如果我编码
@"Some string \n And another",则字符串中没有反斜杠字符(即使打印字符串时可能会出现反斜杠)。 (而且,是的,它变得非常混乱。) -
\'组合从何而来?我想不是来自普通键盘。 -
他正在处理 JSON,所以可能来自服务器。问题在于 (a) JSON 包含 JSON 解析器将正确删除的反斜杠,并且 (b) NSLog 语句将显示不存在的反斜杠。
标签: ios objective-c nsstring