我有一个无线接入点,它带有一个SSID,它是一串unicode字符(例如:“ԱԲԳԴԵԶԷԸԹԺԻԼ”),我希望我的Android设备连接到该接口。当我的设备(Nexus One)检测到热点时,SSID如下所示:“܍܍܍܍܍܍܍܍”并且无法识别。任何想法如何解决这个问题?为什么我无法在Android上检测到具有unicode字符的wifi SSID?
回答
我写了一个应用程序“WiFi连接管理器”来解决这个问题。但是,我不明白任何亚美尼亚人,所以可能无法正确显示结果。即使名称与我的应用程序不正确显示,您仍然可以连接到访问点。
您可以在Android Market找到它。
或者您可以download it here。
太棒了!你是如何克服特殊性格问题的?我试图使用unicode字符作为底层位序列的表示,所以我必须能够将它结合到我自己的应用程序中。 (这是我的主人的项目 - 我保证我不会让你的应用成为竞争对手,哈哈。) – Ben 2012-03-24 19:52:18
你需要直接处理wifi服务才能获得原始扫描结果。结果与设备和驱动程序不同。如果您只需要它在一台设备上工作,则不需要太多时间。 – roamingsoft 2012-03-26 07:29:35
我在问这个问题,并在这里提供一个赏金:http://stackoverflow.com/questions/20277425/non-ascii-ssids-in-android – 2014-03-26 13:53:09
在802.11分组中的SSID字段具有32个字节。我相信Android设备(以及其他设备)选择将每个字节解释为单个字符(这可能也是802.11标准的一部分)。这就是为什么SSID限制为32个字符。
现在,因为我们只用一个字节来表示每个字符,我们只有8位使用。使用二进制补码系统(可能使用),我们可以表示的最高数字是127(2 ^(8-1))。
标准ASCII字符可以与单个字节表示,每个对应于在另一方面0到127 Unicode字符之间的小数值,需要从1到4个字节的任何地方来表示。因此,如果将802.11规范修改为在SSID字段中包含4个字节的Unicode字符,则只能在SSID中使用最多8个字符。我猜想某个地方有人决定从一个较小的游泳池中挑选32个字符,而从一个较大的游泳池中挑选8个字符。
你可能解决这个由该设备来解释32字节SSID字段作为Unicode字符上编写自定义的驱动程序,但我不会推荐它。
正如在评论中提到的,Unicode字符可以编码为UTF-8,所以我以前的答案是无效的。
“你只能使用最多8个字符在你的SSID中“ - 不得超过32个。请记住使用1-4个字节 - 对于东方语言通常只有2个 – 2013-11-29 02:16:34
,该规范还允许:http://standards.ieee.org/getieee802/download/802.11-2012。 pdf – 2013-11-29 02:17:35
请注意,如果Unicode以UTF-8编码,则可以将Unicode字符存储在字节数组中。所以上面的答案并不是真的有效。 – 2012-10-25 22:13:03
- 1. Wifi无法在Ubuntu中检测到16.04
- 2. 检测连接到Wifi的Android设备
- 3. 检测连接到MIT App Inventor的WiFi的SSID?
- 4. Android Wifi通过具有相同SSID的AP漫游
- 5. 当unicode字符无法正确显示时检测到
- 6. 我怎么能检测任何unicode字符有descenders,使用.NET
- 7. Java(Android) - 无法检测到字符串的第一个字符?
- 8. 在Android上检测wifi的IP地址?
- 9. 在Android使用WiFi的块网站SSID
- 10. 为什么我的FaceDetectionListener无法检测到眼睛坐标
- 11. 为什么eclipse无法检测到android设备?
- 12. 如何让我的WiFi无线热点的SSID在我目前的Android系统
- 13. 有没有办法检测字母数字Unicode符号?
- 14. MonoTouch WIFI SSID
- 15. 为什么我无法检测到这个文件?
- 16. 检测到无法到达的代码。为什么?
- 17. 在iPad上检测wifi网络变化
- 18. 为什么在Android上未检测到Estimote信标?
- 19. 为什么我的字典中的Unicode字符未打印?
- 20. Android:有什么方法可以检测到任何用户输入? Android上的
- 21. 为什么我无法将我的字符串解析为JsonValue?
- 22. 如何检测在Android中无法连接wifi?
- 23. 为什么我无法在我的网站上看到图标?
- 24. 为什么在使用GCC的终端中Unicode字符无法正确显示?
- 25. 为什么我的音乐无法在Android Studio上播放?
- 26. 在iPhone上检测NSString中的Unicode字符
- 27. 无法检测到“阶乘”的来源。为什么?
- 28. 为什么CIDetector无法检测到最大的矩形?
- 29. 连接到WiFi为什么.disconnect()比reconnect()?
- 30. 文字通过WiFi使用SSID使用SSID
使用A-Z为你的SSID,统一可能会导致各种问题。 – zapl 2012-03-22 22:34:08
@zapl它不是unicode,会导致“各种问题”,但在某些设备上缺乏对它的支持 - 因为制造商不支持它更简单,更便宜。 – Rolf 2016-01-13 18:09:03
@Rolf仍然意味着Unicode是ssids中的一个坏主意 – zapl 2016-01-13 22:17:22