(iOS)错误转义字符串中的反斜杠

时间:2012-05-03 14:34:40

标签: objective-c ios

我在替换字符串K90wuRcDX43cqDB7xkjReuzb\/nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S中的反斜杠时遇到问题。

如果我手动转义字符串中的反斜杠我没有问题

NSString *mytoken = @"K90wuRcDX43cqDB7xkjReuzb\\/nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S";
NSLog(@"mytoken %@",mytoken);
    mytoken K90wuRcDX43cqDB7xkjReuzb\/nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S

但是如果我尝试以编程方式进行操作,那么我就无法逃避反斜杠(我尝试了所有内容:CFString,stringByReplacingOccurrencesOfStringreplaceOccurrencesOfString

NSMutableString *mytokenOrig = [NSMutableString stringWithFormat:@"K90wuRcDX43cqDB7xkjReuzb\/nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S"];
[mytokenOrig replaceOccurrencesOfString:@"\\" withString:@"\\\\" options:NSCaseInsensitiveSearch range:(NSRange){0,[mytokenOrig length]}];
NSLog(@"mytokenOrig %@",mytokenOrig);

mytokenOrig K90wuRcDX43cqDB7xkjReuzb/
nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S

注意:我必须将此标记附加到字符串并计算哈希值,因此使其工作非常重要。

1 个答案:

答案 0 :(得分:0)

这是因为mytokenOrig不包含反斜杠,它已包含转义的换行符。

[mytokenOrig replaceOccurrencesOfString:@"\n" withString:@"\\n" options:NSCaseInsensitiveSearch range:(NSRange){0,[mytokenOrig length]}];


但是,您不需要(重新)转义字符串。 Escape characters是为了能够在代码中编写特殊字符。