2010-01-22 70 views
2

我遇到与此问题相同的问题here将反斜杠添加到Objective中的字符串-c

我甚至想编码相同infromation因为他(它是asp.net的日期/时间)...

当过我尝试添加一个反斜杠我得到两个反斜杠,因为我用\。

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

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

回答

6

的字符串和NSLog的是为我工作的罚款:

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

我缺少什么?

+1

喜格里, 你试过了吗? (@“\\/Date(1234534534)\\ /”);为我输出一个双反斜杠。 更重要的是,当我通过http传输该字符串时,数据包中出现双反斜杠 – 2010-01-22 11:05:47

+0

它适用于我(我从您的评论中复制了确切的代码)。我正在运行iPhone SDK 3.1.2和Xcode 3.2.1。 – gerry3 2010-01-22 11:11:20

+0

在我的机器上NSLog(@“\\%@”,[NSString stringWithFormat:@“\\ n \\\ t”])正确输出“\\ n \\ t” – Costique 2010-01-22 11:15:27

2

试试这个:

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

我有同样的问题,原来,我的JSON解析器更换所有“\\”的occurrances与“\\\\”,所以当我NSLogged我原来的这样的代码:

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

这是我得到:

{时间戳: “\\ /日期(12345678)\\ /”}

然而,字符串本身包含四个反斜杠(但其中只有2通过NSLog的打印)。

这是帮助我:

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

结果:

{时间戳: “\ /日期(12345678)\ /”}

+0

当从包含NSString对象的NSDictionary转换为NSString时,这种情况也发生在我身上。 – 2016-04-25 10:47:38