簡體   English   中英

回車編碼

[英]carriage return for encoding

我正在嘗試將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> wtf

應該是

字符串<68333233 6e616d65 20676574 0d> wtf

普通/ r換行了,因此nslog中數據后的wtf字符

您的反斜杠太多了。 嘗試這個:

[string appendString:@"\r"]; 

另外,您創建的testData是完全錯誤的。 創建testData的方式是將指向NSData對象的指針作為“ bytes”參數傳遞,並將指向NSData的指針的大小作為“ length”參數傳遞。 您應該這樣做:

NSData *testData = [string dataUsingEncoding:NSASCIIStringEncoding];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM