2

显然SSID 可以包含 UTF-8 字符以及控制字符等。IIUC 要包含 UTF-8 字符,它们必须指定 SSIDEncoding 字段。我的印象是到目前为止我只能获取 ASCII 字节。

我应该如何处理Android中的情​​况?即,如何从 ScanResult 检查 SSIDEncoding 字段?我需要吗?ScanResult.SSID在这些情况下还包含什么 (包括 SSID 包含不可打印字符的情况)?

有关的

4

1 回答 1

-1

简短的回答是您无法检测到它,但您不需要。

Android 仅在 ScanResult 和 WifiConfiguration 中返回一个字符串(没有记录的编码字段)。由于 Java 字符串可以包含接受不同的编码,但在内部存储 unicode(如何在 Java 中检查字符串的字符集?),因此原始编码在翻译中丢失。但是,如果您只需要一个字符串,并且您正在使用接受 Java 字符串的 API 和存储机制,那么所有这些东西都应该已经支持将该字符串编码为它们需要的任何格式,您可能无需担心。

我无法谈论 Android 在为您提供该字符串方面做了什么,但您提供的链接提供了一些想法。如果 Android 支持或不支持 SSID 的不同编码类型,则您无能为力。

于 2014-04-01T01:09:17.773 回答