2014-02-02 3 views
1

Я хочу, чтобы это изменение было именем периферии, которое отображается в настройках Bluetooth iOS и в моем приложении, чтобы пользователь мог идентифицировать устройство.CBPeripheral name. Проблема с кодировкой

Что я делаю:

  1. Пользователь пишет имя в UITextField, и я получаю NSString.
  2. Я конвертирую NSString в NSData.
  3. Характеристика написана с новым периферийным именем.
  4. Периферийное изменение название устройства GATT.

Все работает нормально, если я использую кодировку UTF8 для получения NSData, но у вас проблемы с тильдами, письменными акцентами и кириллицей, потому что приложение поддерживает несколько языков. Не уверен, что проблема связана с устройством iOS или периферийным устройством.

Мои вопросы:

  1. Какое кодирование я должен использовать?
  2. Можно ли использовать эти символы для имен?
  3. Какая кодировка используется для возвращаемой строки при вызове имени периферии.
  4. Есть ли другое решение для изменения имени периферии, которое отображается?
+0

Какой стек использовать во внешней периферии? Поддерживает ли он произвольные имена? В спецификации указано, что имя является utf8s, поэтому теоретически оно должно принимать любую юридическую строку. Что означает «проблемы с ...»? Вы пытались обнюхать пакеты BLE, чтобы узнать, передает ли периферийное устройство указанное имя? – allprog

+0

@allprog. Спасибо за ваш ответ. Я не нашел кодировку для свойства name. Вы были правы, и это UTF8. Моя проблема заключалась в том, что я не понял, что некоторым персонажам требуется 2 байта. Поэтому проблема была связана с длиной. – Maria

+0

Отлично! Я добавил ответ для дальнейшего использования. Вы можете принять его или опубликовать самостоятельно и принять это. Я думаю, что очень важно не оставлять этот вопрос открытым в любом случае и указывать будущим пользователям, что вы нашли решение. – allprog

ответ

0

Название кодируется в UTF-8, которое соответствует спецификации. UTF-8 is a multibyte coding, поэтому интерпретация значений байтов в виде отдельных символов может привести к неожиданным результатам.

Смежные вопросы