Я хочу, чтобы это изменение было именем периферии, которое отображается в настройках Bluetooth iOS и в моем приложении, чтобы пользователь мог идентифицировать устройство.CBPeripheral name. Проблема с кодировкой
Что я делаю:
- Пользователь пишет имя в UITextField, и я получаю NSString.
- Я конвертирую NSString в NSData.
- Характеристика написана с новым периферийным именем.
- Периферийное изменение название устройства GATT.
Все работает нормально, если я использую кодировку UTF8 для получения NSData, но у вас проблемы с тильдами, письменными акцентами и кириллицей, потому что приложение поддерживает несколько языков. Не уверен, что проблема связана с устройством iOS или периферийным устройством.
Мои вопросы:
- Какое кодирование я должен использовать?
- Можно ли использовать эти символы для имен?
- Какая кодировка используется для возвращаемой строки при вызове имени периферии.
- Есть ли другое решение для изменения имени периферии, которое отображается?
Какой стек использовать во внешней периферии? Поддерживает ли он произвольные имена? В спецификации указано, что имя является utf8s, поэтому теоретически оно должно принимать любую юридическую строку. Что означает «проблемы с ...»? Вы пытались обнюхать пакеты BLE, чтобы узнать, передает ли периферийное устройство указанное имя? – allprog
@allprog. Спасибо за ваш ответ. Я не нашел кодировку для свойства name. Вы были правы, и это UTF8. Моя проблема заключалась в том, что я не понял, что некоторым персонажам требуется 2 байта. Поэтому проблема была связана с длиной. – Maria
Отлично! Я добавил ответ для дальнейшего использования. Вы можете принять его или опубликовать самостоятельно и принять это. Я думаю, что очень важно не оставлять этот вопрос открытым в любом случае и указывать будущим пользователям, что вы нашли решение. – allprog