[英]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.