【问题标题】:Converting NSData to NSString without knowing the encoding type在不知道编码类型的情况下将 NSData 转换为 NSString
【发布时间】:2016-06-14 14:52:03
【问题描述】:

免责声明:

  • this 上一个问题不包含有效答案。
  • this other 确实包含我用来转换它的技术,但没有回答我的问题。

问题:

我正在从与 string 对应的 BLE 特征中读取一些 NSData,但是我不知道它使用什么编码格式。

这是来自 Xcode 上的调试器的视图:

如何将其转换为字符串?我想提取这个值: “”

我尝试了以下没有任何意义的转换。但是 XCode 似乎可以完成这项工作。 为什么?

NSData * valueAsData = characteristic.value.mutableCopy;

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

【问题讨论】:

  • 你确定它是一个 NSString,而且只是一个字符串(例如可以是 struct)?您是否正在尝试进行一些逆向工程?如果是,并且您正在尝试确定 char 的字符串编码,那么您可能必须尝试所有可用的编码。请注意,有一些方法可以将字符串“”转换为相应的 NSData,因此您不必重做整个过程即可到达该行。或者你想得到一个 newStr = @""" ?
  • xcode 正在显示字节值。你可以对 NSData bytes 做同样的事情

标签: ios objective-c nsstring nsdata


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多