Apparently SSID可以包含UTF-8字符,也可以控制字符等。IIUC包含UTF-8字符,它們必須指定SSIDEncoding字段。我的印象是,我現在只能得到ASCII字節。android中的非ASCII碼SSIDs
我應該如何處理Android的情況?也就是說,我如何從ScanResult中檢查SSIDEncoding字段?我需要嗎?在這些情況下還包含ScanResult.SSID
(包括SSID包含非打印字符)?
相關
Apparently SSID可以包含UTF-8字符,也可以控制字符等。IIUC包含UTF-8字符,它們必須指定SSIDEncoding字段。我的印象是,我現在只能得到ASCII字節。android中的非ASCII碼SSIDs
我應該如何處理Android的情況?也就是說,我如何從ScanResult中檢查SSIDEncoding字段?我需要嗎?在這些情況下還包含ScanResult.SSID
(包括SSID包含非打印字符)?
相關
簡短的回答是,你不能檢測到它,但你並不需要。
Android只在ScanResult和WifiConfiguration中返回一個字符串(沒有文檔編碼字段)。由於Java字符串可以包含接受不同的編碼,但在內部存儲unicode(How to check the charset of string in Java?),則原始編碼在翻譯中丟失。但是,如果你需要的只是一個字符串,並且你正在使用接受Java String的API和存儲機制,那麼所有這些東西都應該已經支持將該String編碼爲他們需要的任何格式,並且你可能沒有什麼可擔心的。
我不能說安卓系統在爲您提供該字符串方面做了什麼,但是您提供的鏈接提供了一些建議。如果Android支持或不支持SSID的不同編碼類型,則無法對此做任何處理。
有 - 在C++中與服務交談 - 您是否仔細閱讀了該問題? –
也許你應該澄清這個問題,沒有提及C++ –
是的,因爲它可能不需要。但在賞金的通知它說:___在問題中討論過,它可能是「你需要直接處理wifi服務來獲得原始掃描結果」。如果你可以更好地處理Java的話 –