gpt4 book ai didi

android - 为什么我无法在 Android 上检测到带有 unicode 字符的 wifi SSID?

转载 作者:搜寻专家 更新时间:2023-11-01 08:10:48 27 4
gpt4 key购买 nike

我有一个带有 SSID 的 wifi AP,它是一串 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 字符来解决此问题,但我不推荐这样做。

如评论中所述,Unicode 字符可以编码为 UTF-8,因此我之前的回答无效。

关于android - 为什么我无法在 Android 上检测到带有 unicode 字符的 wifi SSID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9831055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com