Unicode display problems in bash

Ok, I know this has nothing to do with security and I’m just writing about typical, everyday sysadmin stuff right now. But this problem has cost me way too much time to not be sharing the solution with the world.

The problem

I was trying to build the owncloud sync client mirall when I noticed that certain characters aren’t displayed correctly. This looks like a typicall locales misconfiguration, so I started to mess with that a bit.

I switched to de_DE.UTF-8 which unfortunately didn’t fix the problem. What did though, was switching to de_DE.ISO-8859-1@euro. Well, so far so good but now I had my whole system throwing german messages at me. And I like my system to be in english (ever tried to google for a german error message?)

I didn’t quite understand the problem at the time, because UTF-8 is unicode and should be able to handle special characters like ä, ö and ü.

So here is a picture of a file called äöü.txt

Here is the same file shown in dolphin:

Another thing I noticed was the command-not-found crash, whenever I typed öö instead of ll, which is an alias for ls -lah on my system.

The solution

To make a long story short, I tried setting locales for quite a while until I finally checked my terminals shell profile. Under advanced, I found that the default was always set to ISO-8859-1 despite my locale settings.

After changing that, I went from this

to this

while still having my system running with en_US as locale.