2016-06-14 53 views
0

免責聲明:轉換的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')?你是否想要做一些逆向工程?如果是,並且您試圖確定字符的字符串編碼,那麼您可能需要嘗試所有可用的編碼。請注意,有一些方法可以將字符串「<951c7c1d e0fbdcc3 7b8b0b97 5c522036>」轉換爲相應的NSData,因此您不必重做整個過程即可到達該行。或者你試圖得到一個newStr = @「」<951c7c1d e0fbdcc3 7b8b0b97 5c522036>「? – Larme

+0

xcode顯示字節值,你可以用NSData'bytes' – danh

回答

0

獲取與特性相關的描述符。其中一個應該是CBUUIDCharacteristicFormatString。這將指示presentation format,它將指示特徵值的數據類型。