Broken locale

Good evening.

I installed OpenSUSE 13.2 w/ KDE on my dell e6440 laptop, and after some time I saw that it has a serious issue with utf-8 encoding: It doesn’t display it at all. It is particularly noticeable in chromium, thunderbird, firefox, and GTK+ applications. Is there a fix for it? I tried localectl, localedef, changed lang parameter in kde, in yast2, - all in vane. Here is “locale” command output


$ locale
LANG=en_GB.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


Thanks in advance for your help.

Hello and welcome here.

Can you please explain/show how you come to your conclusion “It doesn’t display it (UTF-8) at all”. I mean, UTF-8 is an encoding to store numbers (Unicode) that represent characters.

When these are stored in a file, it is (IMHO) always possible to::
a) show the hex (or oct) representation of these bytes;
b) to translate these into the Unicode numbers they were originaly encoded from.
But showing the characters they represent requires a font installed on your system that contains the glyphs to be shown.

In other words, when the UTF-8 you have represents the Tibetan character K and you do not have a font installed that has the graphical picture of a Tibetan K, the application will often show an open square or a black lozenge with a ? in it instead of the real character.

So please, tell us at least about one real character were you have the problem. What is the character, what should be shown, and what do you see instead.

I may add that in Linux basicaly all is UTF-8 and I have no problem creating text, but also file names containing UTF-8 encoded Unicode on my system:

henk@boven:~/test> l
totaal 144
drwxr-xr-x 11 henk wij  4096 20 jun  2014 ./
drwxr-xr-x 86 henk wij  4096 23 dec 09:34 ../
drwxr--r--  2 henk wij  4096 13 jul  2013 bestanden/
.....
drwxr-xr-x  2 henk wij  4096  8 jul  2013 wdir/
drwxr-xr-x  2 henk wij  4096  1 apr  2014 नमस्ते/
henk@boven:~/test

(were you may or may not see the last file name in Devanagri because you may or may not have installed the indic-fonts package or similar).

Well, I think I should express myself more correctly then. Take a look at this screenshot:
http://i.imgur.com/QfOQCeA.pngOn the top left corner you can see chromium, on the center, - a gtk application known as “disks”. On the right you can see thunderbird, where the void area should be filled with text, which I can see edited on the lower left corner, which represents thunderbird’s reply window. I would really e glad if someone could explain what exactly is going on here, because it’s not easy to use my computer that way. Furthermore, I’d like do add a detail: on firefox, which I’m using right now, it is almost impossible to view correctly a page without overriding their fonts with custom ones or setting the locale on “central european iso-8851”. Although it could seem a font issue, no application could allow me to show its content by overriding fonts. Finally, If I try to swap window manager, by installing awesomeWM, for example (because one coud think that those issues are caused by some nasty kde setting), I can not see any character at all. That’s the reason of my initial statement.
I would really be glad if someone could help me on this. Thanks in advance.

That is realy strange. And btw not something that most people see, so it must be something peculiar to your system. Or maybe to the user. To check the last case (it being user specific), you can create a new user and test with that user.

BTW, my interpretation of the open rectangles is: no font available that contains that character. It is thus a space filler to show that a character glyph (font) can not be found.
The same for the rectangles with the Hex code inside. That application does not show mere empty rectangles, but tries to inform you what the hex code is of the character it can not show.

Ae you sure you didn’t do anything to fonts beyond what you got installed during the openSUSE 13.2 installation?

Also, can you please tell if my earlier post, that shows some Devanagri text was displayed correctly (did you see the Devanagri characters or did you see empty rectangles)?

Try another gtk2- and gtk3-Theme in the systemsettings.

For me this looks like a problem with the pango plugin cache.

Try to re-create it:

sudo pango-querymodules --update-cache

on a 64bit system:

sudo pango-querymodules-64 --update-cache

this helped a lot; in fact, chrome now displays everything correctly, and big part of menus on GTK+ applications is shown correctly. One issue less, thanks to you! rotfl!
Although, there is still the issue with the rest of the software: thunderbird continues to behave like shown previously, on the screenshot, and if I try to use an alternative WM, like awesome, or IceWM (included in the standard OpenSUSE KDE installation, for some reason) all of the strings still continue to miss. On awesome every character is replaced by an empty rectangle, and on IceWM strings are simply missing. I tried refreshing the pango cache, but still nothing. Do you guys have any other advice? Maybe, I should reinstall pango while in CLI failsafe mode?
Looking forward for your help, thank you in advance.

open Thunderbird as User in Terminal and post the output:

thunderbird
$ thunderbird 

(process:7701): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
/usr/share/themes/Animus-3.12/gtk-2.0/panelrc:240: error: invalid string constant "task-buttons", expected valid string constant
/usr/share/themes/Animus-3.12/gtk-2.0/panelrc:240: error: invalid string constant "task-buttons", expected valid string constant

Here you are. I don’t think the second ones are relevant, because they are relative to my GTK+ theme, which is called “Animus”. I have no idea what does the first one mean, even though I sought for it on startpage (i.e. googled it). Furthermore, ther also was this warning:

Gtk-WARNING **:  Unable to locate theme engine in module_path: "murrine"

which I solved by installing gtk2-engines.
I also thought that it would be more informing if I posted the output of a purely GTK+ application, like gnome-disks, launched from console:

$ gnome-disks 

(gnome-disks:7792): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:2:19: Theming engine 'adwaita' not found

(gnome-disks:7792): Gtk-WARNING **: Theme parsing error: unity.css:37:9: 'shade' is not a valid property name

(gnome-disks:7792): Gtk-WARNING **: Theme parsing error: unity.css:112:9: 'shade' is not a valid property name

(gnome-disks:7792): Gtk-WARNING **: Theme parsing error: unity.css:125:0: expected '}' after declarations

(gnome-disks:7792): GLib-GObject-WARNING **: The property GtkWidget:margin-left is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-disks:7792): GLib-GObject-WARNING **: The property GtkWidget:margin-right is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-disks:7792): GLib-GObject-WARNING **: The property GtkAlignment:left-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-disks:7792): Pango-WARNING **: failed to create cairo scaled font, expect ugly output. the offending font is 'HelveticaNeue 6.9990234375'

(gnome-disks:7792): Pango-WARNING **: font_face status is: out of memory

(gnome-disks:7792): Pango-WARNING **: scaled_font status is: out of memory

(gnome-disks:7792): Pango-WARNING **: shaping failure, expect ugly output. shape-engine='BasicEngineFc', font='HelveticaNeue 6.9990234375', text='BOOT_EFI'


seen the Pango warnings, I decided to uninstall helveticaneue fonts (which I, sadly, needed for some graphic works) and, surprisingly, everything started to work! the only thing I’d like to fix, though, it’s the horrible pixelated fonts which are being used now for all the said GTK+ application (antialiasing, or something), but this is not a critical issue anymore. So, thank to you all, the admins can now mark this problem as solved.