我正在尝试从特殊的蓝牙设备以JSON格式获取数据。据我了解,在didUpdateValueFor CBCharacteristic委托中,CoreBluetooth发送了20个字节的消息,您可以使用它。问题是,如果这20个字节的消息具有西里尔符号,则didUpdateValueFor CBCharacteristic委托不会向我发送这20个字节,最后我没有有效的JSON。示例:
{"num":2,"id":4,"pid":1,
如您所见,在func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
let readValue = myCharacteristic.value ?? Data()
jsonString1 = String(data: readValue, encoding: String.Encoding.utf8) ?? ""
massageFromDevice = massageFromDevice + jsonString1
之后的json中,我有20字节的西里尔字母。
设备以UTF8发送数据
我将数据转换为字符串,如下所示
{{1}}
我该如何解决?