CoreBluetooth, iOS

Я пытаюсь получить данные от специального устройства Bluetooth в формате JSON. Как я понял, CoreBluetooth в didUpdateValue для CBC характерен для делегата, отправляющего 20-байтовый массаж, и вы можете работать с ним. Проблема в том, что если этот 20-байтовый массаж содержит символы кириллицы, didUpdateValueForCBCharacteristic делегат не отправляет мне эти 20 байт, и в конце у меня нет действительного JSON. Пример:

{"Rows":[ 
     {"num":0,"id":1,"pid":0,"type":0,"name":"Папка1"},
     {"num":1,"id":2,"pid":0,"type":0,"name":"Group2"},
     {"num":2,"id":4,"pid":1,,"id":5,"pid":2,"type":1,"name":"Group2запись"}
]}

Как вы можете видеть, в этом JSON после {"num":2,"id":4,"pid":1, У меня было 20 байт с кириллицей.

Устройство отправляет данные в UTF8

Я преобразую эти данные в строку, как показано ниже

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

Как я могу решить это?

0 ответов

Другие вопросы по тегам