Character encoding is as much as a problem today as it has always been. As long as you stay in your application and handle strings by a consistent encoding everything is fine. But leave these boundaries and it's anybody's guess what happens.Your best way of guaranteeing that a string gets decoded correctly is if you only allow a specific encoding over your interface or you state which encoding you are using (what XML does, though it doesn't guarantee that the encoding is consistent). Actually what you see in your URL bar isn't what is transmitted over the line. That's your browser doing an auto de- / encode. What happens there is that non-ASCII characters are (hopefully) displayed correctly but in the background they are stored as hex numbers indicted by a %. AFAIK UTF-8 is used there. Now, if you insert some text containing hex values your browser will try to parse these into a human readable character. But this will only work correctly if the hex value's codepage and the browser expectations match. Same the other way round. Copy text from your URL bar into some other file. In the best case encoding and decoding will match and you end up with something human readable. If not you'll get only %hex values at best, or some gibberish, or control characters. Or have a look at the output of a protocol monitor. That might also end up being difficult to read. Also your fontmap has to support that character in the first place, or you'll might only see a lot of question marks inside a caret or boxes, even if the decoding is correct. Character encoding often causes headaches when you have to keep interoperability in mind, so my preferred way of dealing with it is keeping it simple for as long as possible, and that usually is 'try to stick with ascii'. If the whole world would decide that from now on all of us have to use just this one codepage I would be more than happy, but unfortunately this won't happen. Also it would mean that we would deprecate a lot legacy systems that can't support this. That's not even passive aggressive anymore. Edit: And it doesn't even apply. My native language isn't (completely) covered by the ASCII codepage.