Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

My current wifi network (and i'm writing this with the help of Windows -.- ) has a special character in it's SSID: "ö", a so-called "umlaut".

If changing the SSID is not an option, how to connect to such a network?

This does not work with Ubuntu 12.04 or Android 2.3.6 or Android 4.0, so I guess it's a general Linux problem. The network adapter is a "Broadcom 4313".

[Update] The problem is, that the network is hidden. Both Android and Ubuntu fail to interpret the manually entered SSID string correctly. However both systems can see the network, if it's not hidden. Ubuntu sees the SSID name correctly, Android fails at the umlaut "ö" and misses the following two characters too, (so instead of "[some characters]örc[some other characters]" it sees "[some characters] [some other characters]").

So it's the combination of hidden SSID and special-character-SSID that causes the problem. [/Update]

share|improve this question
    
How have you been trying to connect? NetworkManager? Command line? –  Tim May 25 '12 at 19:50
    
If you are using wcid there is a recent bug about this on Debian: bugs.launchpad.net/wicd/+bug/996179 –  Tim May 25 '12 at 19:56
    
I don't use the command line. With ubuntu i'm using the wifi symbol in the top right corner and on android just the default wifi manager. I don't know if this is wcid in background –  stefan May 25 '12 at 20:42
2  
yes, un-hiding is a valid solution. It wasn't my private network and some people prefer hidden networks, so it was a bad solution. Nevertheless, there should be a way to connect to such networks. After all, other OS (as Windows) don't have any problem with that. –  stefan Aug 24 '12 at 17:41
1  
@stefan: The problem with hidden networks is, that it is not that hidden as you might think. If you've autoconnect activated for that network, your device is transmitting the SSID no matter if the network is in reach or not. –  Bobby Sep 15 '12 at 14:46

5 Answers 5

As for the Android problem, myself and others have had success with this Android app: https://play.google.com/store/apps/details?id=com.roamingsoft.manager

share|improve this answer
    
That's good to know. Would be better to know the "manual way", but it's better than nothing. Thanks for that! –  stefan May 25 '12 at 20:56
    
No problem. I will update this answer if I ever notice a manual way, and if I remember this post ;) –  Tim May 25 '12 at 20:58
    
Unfortunately this seems to be not functional for my case. Maybe it's a problem since the network is hidden.. That's just terrible.. –  stefan May 25 '12 at 21:29

May be my suggestion is a a stupid one, but you could just set Deutsch keyboard layout with $ setxkbmap -layout de or graphical tool on your system and type in the SSID?

share|improve this answer
    
It's the same with this answer: I'm not at home for a few days, so I will not be able to try this. I'll need to create a test configuration of my router since personally I don't use such a useless SSID/hiding thingy. Thanks for your answer, I'll come back to this later –  stefan Sep 16 '12 at 20:59

I'm curious to see what happens if you create a QR code for this WiFi network and then use that to set up the network in Android. I don't have an Android device but I've heard that Android supports setting up WiFi this way and maybe that will get around the encoding issue.

share|improve this answer
    
I'm not at home for a few days, so I will not be able to try this. I'll need to create a test configuration of my router since personally I don't use such a useless SSID/hiding thingy. Thanks for your answer, I'll come back to this later –  stefan Sep 16 '12 at 20:59

What about adding manual entry into wpa_supplicant.conf? For SSID with 'umlaut' just add ssid-entry in hex.

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

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

do not use the var in the conf file. just get it from terminal and write hex down without quotes.

share|improve this answer

I'm guessing this has to do with encoding. According to this answer, an SSID may (now) have an explicit UTF-8 or UNSPECIFIED encoding, but the "SSIDEncoding" field is part of a newer standard. Presumably then on networks with equipment older than this, it is effectively "unspecified".

I would like to think that anything which sets an SSID from text input by humans would do it in ASCII or UTF-8. However, the standard specifying the SSIDEncoding field appears to be dated 2012, so previous to that, any encoding at all could be used (and any encoding at all could still be used, as UNSPECIFIED). So there could be some software somewhere that sets them in something else -- e.g., using ASCII but falling back on UTF-16 when a string contains odd characters. Java and I believe Windows both use UTF-16 internally.

The router almost certainly regards the SSID as a sequence of bytes and does not care about any potential encoding at all, so it will accept whatever it was passed when the SSID is set. To determine this, you'd have to look at the actual byte sequence as broadcast.

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

It's possible to recognize a UTF-16 string for what it is, so when not hidden, that may happen and the SSID translated into local encoding for display. But when you try to enter it manually, the system can't know what encoding to use in the broadcast; it will only work if it matches the methodology of the software that set it in the first place. The new SSIDEncoding field does potentially resolve this, but A) it also allows for the UNSPECIFIED loophole, and B) older equipment won't care. Since linux and android generally use UTF-8, if the SSID is actually a UTF-16 string, it may end up looking the same on the screen, but not match up when entered manually and searched for.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.