2

私はここでこの問題と同じ問題を抱えています。

私も彼と同じ情報をエンコードしたいです(それはasp.netの日付/時刻です)...

バックスラッシュを追加しようとすると、\を使用してから2つのバックスラッシュが表示されます。

上記のスレッドの全員が、これはNSLogの問題であり、NSStringは\\として扱うと主張してい\ます。パケットスニファを使用してWebサーバーに送信しているパケットを調べることでこれをさらに確認し、単一の円記号ではなく二重の円記号を送信していることを確認できます。

NSStringにバックスラッシュを追加する方法を知っている人はいますか?

4

2 に答える 2

7

文字列と NSLog は私にとってはうまく機能しています:

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

私は何が欠けていますか?

于 2010-01-22T11:00:21.553 に答える
2

これを試して:

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

同じ問題が発生し、JSONパーサーが「\\」のすべての出現箇所を「\\\\」に置き換えたことが判明したため、元のコードを次のようにNSLoggedしました。

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

これは私が得たものです:

{TimeStamp: "\\ / Date(12345678)\\ /"}

ただし、文字列自体には4つの円記号が含まれていました(ただし、NSLogによって出力されるのはそのうちの2つだけです)。

これが私を助けたものです:

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

結果:

{TimeStamp: "\ / Date(12345678)\ /"}

于 2012-08-01T15:33:59.767 に答える