2012-01-19 11 views
0

サーバにASCIIエンコードメッセージを送信しようとしています。私の問題は、私は符号化のキャリッジリターン

-(void)button2Pressed 
{ 
    NSMutableString *mutableString = [NSMutableString stringWithString:@"h323name get"]; 

    [self sendStringCommand:mutableString]; 
} 

-(void)sendStringCommand:(NSMutableString*)string 
{  
    [string appendString:@"\\r"]; 

    NSLog(@"string %@ wtf",[string dataUsingEncoding:NSASCIIStringEncoding]); 
    NSData * testData = [[NSData alloc]initWithBytes:[string dataUsingEncoding:NSASCIIStringEncoding] length:sizeof([string dataUsingEncoding:NSASCIIStringEncoding])]; 


    [socket writeData:testData withTimeout:20 tag:1]; 

} 

は現在、これは、この出力文字列に改行を追加しようとしたときに来ている:

文字列< 68333233 6e616d65 20676574 5c72>博

いるはずbe

文字列< 68333233 6e616d > WTF

単なる/ R 65 20676574 0Dは、したがって博のキャラクターあなたはあまりにも多くのバックスラッシュを持っているのNSLog

答えて

1

内のデータの後に新しい行をしました。試してみてください:

[string appendString:@"\r"]; 

また、testDataの作成は完全に間違っています。 testDataを作成する方法は、 "bytes"パラメータとしてNSDataオブジェクトへのポインタを渡し、 "length"パラメータとしてNSDataへのポインタのサイズを渡しています。あなたはちょうどこれを行う必要があります:

NSData *testData = [string dataUsingEncoding:NSASCIIStringEncoding]; 
+0

私は最初にそれを試したときに私が思っていたことを働いてくれてありがとうございました! oよく感謝しています。 –

関連する問題