Não é possível conectar-se a uma rede wifi com um SSID contendo diacríticos

6

Minha rede Wi-Fi atual (e estou escrevendo isso com a ajuda do Windows -.-) tem um diacrítico em seu SSID: "ö".

Se a alteração do SSID não for uma opção, como se conectar a essa rede?

Isso não funciona com o Ubuntu 12.04 ou Android 2.3.6 ou Android 4.0, então eu acho que é um problema geral do Linux. O adaptador de rede é um "Broadcom 4313".

O problema parece ser que a rede está oculta . Tanto o Android quanto o Ubuntu não interpretam corretamente a string SSID inserida manualmente. No entanto, ambos os sistemas podem ver a rede, se ela não estiver oculta. Ubuntu vê o nome SSID corretamente, o Android falha no diacrítico "ö" e também perde os dois caracteres seguintes (então, em vez de "[alguns caracteres] örc [alguns outros caracteres]" ele vê "[alguns caracteres] [alguns outros caracteres] ] ").

Portanto, é a combinação de SSID oculto e SSID de caracteres especiais que causa o problema.

    
por stefan 25.05.2012 / 21:42

5 respostas

3

Suponho que isso tenha a ver com codificação. De acordo com esta resposta , um SSID pode (agora) ter uma codificação explícita UTF-8 ou UNSPECIFIED, mas o campo "SSIDEncoding" faz parte de um padrão mais novo. Presumivelmente, então, em redes com equipamentos mais antigos que isso, é efetivamente "não especificado".

Eu gostaria de pensar que qualquer coisa que defina um SSID de entrada de texto por humanos faria em ASCII ou UTF-8. No entanto, o padrão que especifica o campo SSIDEncoding parece ser datado de 2012, portanto, antes disso, qualquer codificação poderia ser usada (e qualquer codificação poderia ainda ser usada, como UNSPECIFIED). Assim, pode haver algum software em algum lugar que os configure em outra coisa - por exemplo, usando ASCII, mas voltando ao UTF-16 quando uma string contém caracteres ímpares. Java e eu acreditamos que o Windows usa UTF-16 internamente.

O roteador quase certamente considera o SSID como uma seqüência de bytes e não se importa com nenhuma codificação em potencial, então ele aceitará o que foi passado quando o SSID estiver configurado. Para determinar isso, você teria que ver a sequência de bytes atual como transmissão.

both systems can see the network, if it's not hidden.

É possível reconhecer uma string UTF-16 pelo que ela é, portanto, quando não oculta, isso pode acontecer e o SSID é convertido em codificação local para exibição. Mas quando você tenta inseri-lo manualmente, o sistema não pode saber qual codificação usar na transmissão; Ele só funcionará se corresponder à metodologia do software que o definiu em primeiro lugar. O novo campo SSIDEncoding potencialmente resolve isso, mas A) também permite a lacuna UNSPECIFIED, e B) equipamentos mais antigos não se importam. Como o linux e o android geralmente usam UTF-8, se o SSID é na verdade uma string UTF-16, ele pode ter a mesma aparência na tela, mas não combina quando é digitado manualmente e pesquisado.

    
por 02.12.2013 / 17:25
0

Quanto ao problema do Android, eu e outras pessoas obtivemos sucesso com este aplicativo para Android: link

    
por 25.05.2012 / 22:53
0

Pode ser que minha sugestão seja estúpida, mas você poderia apenas definir o layout do teclado Deutsch com $ setxkbmap -layout de ou ferramenta gráfica no seu sistema e digitar o SSID?

    
por 15.09.2012 / 14:59
0

Estou curioso para ver o que acontece se você criar um código QR para essa rede WiFi e então use isso para configurar a rede no Android. Eu não tenho um dispositivo Android, mas ouvi dizer que o Android suporta a configuração do Wi-Fi dessa maneira e talvez isso contorne o problema de codificação.

    
por 16.09.2012 / 22:40
0

Que tal adicionar entrada manual em wpa_supplicant.conf ? Para SSID com 'umlaut' basta adicionar ssid-entry em hexadecimal.

SSID=$(echo 'SSID' | xxd -u -p)

network={
    priority=1
    ssid=$SSID
    mode=0
    key_mgmt=WPA-PSK
    psk="PASSWORD"
}

não use o var no arquivo conf. é só pegar do terminal e escrever hexadecima sem aspas.

    
por 16.05.2013 / 04:00