執行轉換後,我收到了奇怪的NSString值。例如,我有一個值爲2(00000010)的字節,存儲在響應中。我嘗試了NSString initWithData和initWithBytes,但都返回怪異符號(倒過來的問號)。這裏是我的代碼:如何正確地從NSData轉換爲NSString?
NSString *command1 = [[NSString alloc] initWithData:response encoding:NSASCIIStringEncoding];
NSString *command2 = [[NSString alloc] initWithBytes:[response bytes] length:[response length] encoding:NSASCIIStringEncoding];
NSLog(@"command1: %@", command1);
NSLog(@"command2: %@", command2);
也試過NSUTF8StringEncoding但NSASCIIStringEncoding是正確的,因爲數據來源編碼的每個符號一個字節。
你期望什麼?值爲'2'的字節是STX或文本的開始。你想從這個字節中得到什麼? – 2012-02-08 14:32:16
你期望得到什麼? ascii表中最多32個空格的所有字符都被認爲是控制字符,它們沒有像樣的表示。 – Eimantas 2012-02-08 14:33:29
來的響應是編碼爲字節的數字。因此,例如,我需要從00000010解析2。 – Centurion 2012-02-08 14:36:09