[Xorg] Perte du support d'UTF-8

Questions et astuces concernant l'installation et la configuration d'archlinux
Avatar de l’utilisateur
kozaki
Chu Ko Nu
Messages : 422
Inscription : mer. 13 sept. 2006, 22:49
Localisation : London > . < Paris
Contact :

[Xorg] Perte du support d'UTF-8

Message par kozaki » mar. 11 avr. 2017, 02:40

Je rencontre un soucis de localisation sur mon desktop que je parviens pas à résoudre.

Le système est Arch à jour, installé mi 2016
Le soucis : perte du support d'UTF-8 sous X, càd :

- impossible d'afficher ou d'entrer aucun caractère accentué sur un émulateur de terminal (urxvt, xterm)
- les applis GUi ralent mais à par ça fonctionnent presque correctement concernant le support UTF-8. "Presque", car je ne peux entrer de voyelle + accent circonflexe (genre â ou û) sous LibreOffice.
- le soucis est pour tous les utilisateurs, existant ou "tout neuf".
- Sorti de X, aucun soucis de locale.
- Sur mon netbook avec la *même* configuration [1] il y a aucun soucis.

Voici les messages puis la configuration, tests et quelques références.

Les messages

Code : Tout sélectionner

$ urxvt
urxvt: the locale is not supported by Xlib, continuing without locale support.
Pas de lanceur sous i3-wm

Code : Tout sélectionner

$ dmenu&
 27
 28       [1] 3608
 29       no locale support
 30
 31       [1]+  Stopped                 dmenu

Code : Tout sélectionner

$ libreoffice &
[1] 8270
[kozaki@llewellyn ~]$ Warning: failed to read path from javaldx
I18N: X Window System doesn't support locale "en_US.UTF-8"
I18N: Operating system doesn't support locale "en_US"
I18N: X Window System doesn't support locale "C"
Sous vim,

Code : Tout sélectionner

J ne peux crire de caractres accentus franais.
Le résultat du script permettant de tester la 'locale' (wiki)

Code : Tout sélectionner

??> [0]$ ./locale-check.sh 
	* Parent:       1 /sbin/init
	* Terminal: 11827 urxvt
	* Shell:    11828 -bash
                                                                                     
	warning: Parent's environment is inaccessible, skipping term=parent checks.
	warning: (shell) LANG: non-UTF8 locale "C"
	warning: (term) LANG: non-UTF8 locale "C"
                                                                                     
	problem: Your current locale is using a legacy charset.
	* The incorrect variables are:
		- (shell) LANG         (currently "C")
		- (term) LANG          (currently "C")
	* Change your locales to their UTF-8 variants.
                                                                                     
	1 problems found. Here's a quick UTF-8 test for you:  --> ? <--
	* a star             -- font and terminal are okay.
	* 3 question marks   -- your terminal does not correctly interpret UTF-8.
	* a box or rectangle -- UTF-8 works fine, but you need a better font.
	* empty area         -- you really need a better font or something.
Et sous tmux le "quick UTF-8 test" donne un underscore : --> _ <--

[1]: La config

Tableau récapitulatif (espérons qu'il passe)

Code : Tout sélectionner

| machine / user / env       | locale.conf        | locale      | locale -a      | localectl           | $ env \ grep LANG | /etc/vconsole.conf | $ TERM                |
|----------------------------|--------------------|-------------|----------------|---------------------|-------------------|--------------------|-----------------------|
| Desktop, kozaki, tty and X | LANG="en_US.UTF-8" | C           | C, en_US.utf8  | LANG=en_US.UTF-8... | LANG=C            | KEYMAP=fr-pc       | rxvt-unicode-256color |
| Desktop, kozaki, tty and X | LANG=fr_FR.UTF-8   | C           | C, en_US.utf8  | LANG=fr_FR.UTF-8... | LANG=C            | KEYMAP=fr-pc       | rxvt-unicode-256color |
| netbook, kozaki            | LANG=fr_FR.UTF-8   | fr_FR.UTF-8 | C, fr_FR.utf8  | LANG=fr_FR.UTF-8    | LANG=fr_FR.UTF-8  | KEYMAP=fr-pc       | rxvt-unicode-256color |

- /etc/locale.conf : LANG=fr_FR.UTF-8

`locale-gen ` génère la (ou les) locale non commentée bien comme d'hab.

- /etc/vconsole : KEYMAP=fr-pc

~/.config/locale.conf est vide (main user) ou absent (autres users)
~/.config/user-dirs.locale : fr_FR
~/.{bashrc,profile} : Pas de variable LANG.
- ~/.xinitrc résumé :

Code : Tout sélectionner

# Source scripts in /etc/X11/xinit/xinitrc.d/
if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

# Update X resources db using Xresources, not Xdefault                     
xrdb -load ~/.Xresources
urxvtd -q -o -f

exec i3
Packages

- extra/libx11 1.6.5-1 X11 client-side library
J'ai downgradé à Xlib 1.6.3-1 et rebooté sans changement visible.

- rxvt-unicode-patched 9.22-8: Unicode enabled rxvt-clone terminal emulator (urxvt) with fixed font spacing
- rxvt-unicode-terminfo 9.22-2: Terminfo files for urxvt
- urxvtcd 2-2

Netbook :
- rxvt-unicode 9.22-2
- rxvt-unicode-terminfo 9.22-2

Tests

% locale
- Desktop

Code : Tout sélectionner

LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
(...)
LC_IDENTIFICATION="C"
LC_ALL=
% locale -a
- Desktop

Code : Tout sélectionner

C
POSIX
en_US.utf8
fr_FR.utf8
- netbook

Code : Tout sélectionner

C
POSIX
fr_FR.utf8
% localectl
- même chose sur le desktop, netbook

Code : Tout sélectionner

System Locale: LANG=fr_FR.UTF-8
VC Keymap: fr-pc
X11 Layout: n/a
References

- #Xlib #locale #libreoffice
Pas de support d'UTF-8 = soucis sous Libreoffice mais le thread ne va pas plus loin.

- FS#51442 - [libx11] 1.6.4-1 breaks diacritics with LibreOffice
> With libx11 1.6.5-1 both the issues are fixed.

- libx11 1.6.4-2 a causé des soucis *semblables* sous Debian récemment http://debian.2.n7.nabble.com/Bug-84734 ... 51954.html
> I did downgrade back to 2:1.6.3-1 and the problem is gone.

- [solved] locale issue
> /usr/bin/pacmatic: line 6: \
> warning: setlocale: LC_TIME: cannot change locale (en_US.utf8): No such file or directory

La cause était tout autre : une configuration automatique ajoutée dans /var/lib/Accounts... par une appli GNOME apparemment.

- 2013, soucis semblable au mien, non résolu : https://bbs.archlinux.org/viewtopic.php?id=163501
- idem : https://bbs.archlinux.org/viewtopic.php?id=163318

Je sèche ; auriez vous une idée SVP ?
~ Configs ~ PGP Key: 1C2A554EFF0157D9
« Demande un conseil à ton ennemi et fais le contraire (proverbe juif)
SVP intéressé par tout retour d'exp. sur Arch ARM en général, et sur portable (CrOS) en particulier.

benjarobin
Maître du Kyudo
Messages : 15478
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Xorg] Perte du support d'UTF-8

Message par benjarobin » mar. 11 avr. 2017, 10:37

Bonjour,
Le souci est évidement : tu as une variable d’environnement définit à LANG=C
Après où savoir où ceci est définit, tu es le seul à le savoir car tu es le seul à avoir modifier ceci.
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Avatar de l’utilisateur
kozaki
Chu Ko Nu
Messages : 422
Inscription : mer. 13 sept. 2006, 22:49
Localisation : London > . < Paris
Contact :

Re: [Xorg] Perte du support d'UTF-8

Message par kozaki » jeu. 13 avr. 2017, 00:01

Oui alors je me méfie des solutions évidentes. Si c'était le cas benjarobin, ce serait valable soit au niveau système pour tout le monde soit au niveau utilisateur, OK ? Du coup un nouvel utilisateur serait impacté seulement si la variable était changée au niveau système. D'où le test avec un nouvel utilisateur avec tout *par défaut*. Là si vous lisez, un nouvel utilisateur de ce système ne peut afficher ou écrire autre que du ASCII alors que :

Code : Tout sélectionner

$ locale 
LANG="fr_FR.UTF-8"

Avec une variable changée au niveau système afficherait-il "fr_FR.UTF-8" ? Pas du tout à ma connaissance.
~ Configs ~ PGP Key: 1C2A554EFF0157D9
« Demande un conseil à ton ennemi et fais le contraire (proverbe juif)
SVP intéressé par tout retour d'exp. sur Arch ARM en général, et sur portable (CrOS) en particulier.

Avatar de l’utilisateur
kozaki
Chu Ko Nu
Messages : 422
Inscription : mer. 13 sept. 2006, 22:49
Localisation : London > . < Paris
Contact :

Re: [Xorg] Perte du support d'UTF-8

Message par kozaki » ven. 14 avr. 2017, 20:26

C'est ça ; le diagnostique poussé indiqué par les collègues du forum en anglais révèle qu'il manque au moins un fichier de libx11 sur ce système :

Code : Tout sélectionner

$ ls -l /usr/share/X11/locale/locale.dir
ls: cannot access '/usr/share/X11/locale/locale.dir': No such file or directory
Vous pouvez vérifiez ce fichier devrait être présent. Étrangement résinstaller libx11 ne le ramène pas (!), et pacman ne réagit pas comme sur les autres machines :

Code : Tout sélectionner

pacman -Qkk libx11
libx11: 1260 total files, 0 altered files
À cette heure je suspecte `localepurge` (ça peut évoluer).
~ Configs ~ PGP Key: 1C2A554EFF0157D9
« Demande un conseil à ton ennemi et fais le contraire (proverbe juif)
SVP intéressé par tout retour d'exp. sur Arch ARM en général, et sur portable (CrOS) en particulier.

Répondre