2010-01-22 15 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

안녕

이 나를 도왔다 것입니다 Gerry, 시도해 보셨습니까? NSLog (@ "\\/Date (1234534534) \\ /"); 나를 위해 이중 백 슬래시를 출력합니다. 더 중요한 것은 HTTP를 통해 문자열을 전송할 때 이중 백 슬래시가 패킷에 나타납니다. –

+0

내 작품 (내 의견에서 정확한 코드를 복사했습니다). iPhone SDK 3.1.2 및 Xcode 3.2.1을 실행하고 있습니다. – gerry3

+0

내 컴퓨터에서 NSLog (@ "\\ % @", [NSString stringWithFormat : @ "\\ n \\\\ t"])가 "\ \ n \\ t"를 올바르게 출력 함 – Costique

2

이 시도 :

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

내가 같은 문제가 있었 내 JSON 파서 는 "\\\\"와 "\\"의 모든 occurrances을 대체하는 것이 밝혀졌다, 그래서 내 원본을 NSLogged 때 이 같은 코드 :

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

이 내가 가진 것입니다 :

{타임 스탬프 : "\\/날짜 (12345678) \\ /"}

그러나, 문자열 자체가 FOUR 백 슬래시를 포함 (만 2 그들은 NSLog로 인쇄됩니다).

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

결과 :

{타임 스탬프 : "\/날짜 (12345678) \ /"}

+0

이 경우 NSString에 백 슬래시가있는 NSString 객체가 포함 된 NSDictionary에서 NSString으로 변환 할 때도 이런 상황이 발생했습니다. –

관련 문제