执行转换后,我收到了奇怪的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