在Objective-c中向String添加反斜杠

时间:2010-01-22 10:46:37

标签: iphone objective-c nsstring escaping backslash

我遇到与此问题相同的问题here

我甚至想编码与他相同的信息(这是asp.net的日期/时间)......

当我尝试添加反斜杠时,我使用了两个反斜杠。

上述主题中的每个人声称这是NSLog的一个问题,并且NSString确实将\\视为\。我已经通过使用数据包嗅探器来检查我正在发送到网络服务器的数据包,我可以确认它正在传输双反斜杠而不是单个反斜杠。

有谁知道如何在NSString中添加反斜杠?

2 个答案:

答案 0 :(得分:7)

字符串和NSLog对我来说很好用:

NSLog(@"\\"); // output is one backslash
NSLog(@"\\\\"); // output is two backslashes
NSLog(@"\\/Date(100034234)\\/"); // output is \/Date(100034234)\/

我错过了什么?

答案 1 :(得分:2)

试试这个:

yourStr =  [yourStr stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
NSLog(@"%@", yourStr);

我遇到了同样的问题,结果是我的JSON Parser 用“\\\\”替换了<\ strong>所有出现的“\\”,所以当我按原样NSLogged我的原始代码时:

NSString *jsonString = [myJSONStuff JSONRepresentation];
NSLog(@"%@", jsonString);

这就是我得到的:

  
    

{TimeStamp:“\\ / Date(12345678)\\ /”}

  

但是,字符串本身包含四个反斜杠(但其中只有两个由NSLog打印)。

这对我有所帮助:

NSString *jsonString = [myJSONStuff JSONRepresentation];
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
NSLog(@"%@", jsonString);

结果:

  
    

{TimeStamp:“\ / Date(12345678)\ /”}