转换的NSData到NSString的不知道编码类型

问题描述:

免责声明:转换的NSData到NSString的不知道编码类型

  • this前面的问题不包含一个有效的答案。
  • this其他反而确实包含我用来转换它的技术,但没有回答我的问题。

问:

我读一些NSData的从对应于一个BLE的特征,但我不知道它使用什么样的编码格式。

这是从调试上的Xcode的观点:

enter image description here

我怎样才能将其转换为字符串?我想提取此值: “< 951c7c1d e0fbdcc3 7b8b0b97 5c522036>”

我尝试了以下方法,但没有进行任何有意义的转换。然而,XCode似乎做的工作。 为什么?

NSData * valueAsData = characteristic.value.mutableCopy; 

NSString* newStr = [[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding]; 
NSString* newStr2 = [[NSString alloc] initWithData:characteristic.value encoding:NSASCIIStringEncoding]; 
+0

你确定它是一个NSString,并且只有一个字符串(例如可能是一个'struct')?你是否想要做一些逆向工程?如果是,并且您试图确定字符的字符串编码,那么您可能需要尝试所有可用的编码。请注意,有一些方法可以将字符串“”转换为相应的NSData,因此您不必重做整个过程即可到达该行。或者你试图得到一个newStr = @“”“? – Larme

+0

xcode显示字节值,你可以用NSData'bytes' – danh

获取与特性相关的描述符。其中一个应该是CBUUIDCharacteristicFormatString。这将指示presentation format,它将指示特征值的数据类型。