我有一个 Wi-Fi AP,其 SSID 是一串 unicode 字符(例如:“??”),我希望 Android 设备连接到它。当我的设备(Nexus One)检测到热点时,SSID 看起来像这样:“”并且无法识别它。知道如何解决这个问题吗?
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 字符来解决此问题,但我不建议这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)