Почему я не могу обнаружить Wi-Fi SSID с символами Unicode на Android? - PullRequest
2 голосов
/ 23 марта 2012

У меня есть точка доступа Wi-Fi с SSID, который представляет собой строку символов Unicode (например, «ԱԲԳԴԵԶԷԸԹԺԻԼ»), к которой я хочу подключить устройство Android.Когда мое устройство (Nexus One) обнаруживает горячую точку, SSID выглядит так: «܍܍܍܍܍܍܍܍» и не распознает его.Есть идеи как это исправить?

Ответы [ 2 ]

2 голосов
/ 26 июня 2012

Поле SSID в пакете 802.11 имеет 32 байта. Я считаю, что устройства Android (как и другие устройства) предпочитают интерпретировать каждый байт как отдельный символ (это, вероятно, также является частью стандарта 802.11). Вот почему SSID ограничен 32 символами.

Теперь, поскольку мы используем только один байт для представления каждого символа, у нас есть только 8 битов для использования. При использовании системы дополнения до двух (возможно, используемой) наибольшее число, которое мы можем представить, составляет 127 (2 ^ (8-1)).

Стандартные символы ASCII могут быть представлены одним байтом, каждому из которых соответствует десятичное значение от 0 до 127. С другой стороны, для символов Юникода требуется от 1 до 4 байтов для представления. Таким образом, если спецификация 802.11 была изменена, чтобы включить 4-байтовые символы Unicode в поле SSID, вы могли бы использовать максимум 8 символов в своем SSID. Я предполагаю, что где-то вдоль линии кто-то решил отдать предпочтение 32 символам из меньшего пула, более 8 символов из большего пула.

Возможно, вы могли бы обойти это, написав на устройстве специальный драйвер для интерпретации 32-байтового поля SSID как символов Юникода, но я бы не рекомендовал его.

Как уже упоминалось в комментариях, символы Unicode могут быть закодированы как UTF-8, поэтому мой предыдущий ответ недействителен.

2 голосов
/ 24 марта 2012

Я написал приложение "WiFi Connection Manager", чтобы решить эту проблему.Однако я не понимаю по-армянски, поэтому результат может отображаться некорректно.Вы все еще можете подключиться к точке доступа, даже если имена неправильно отображаются в моем приложении.

Вы можете найти его в Android Market .

1007 * скачать здесь .

...