web-dev-qa-db-fra.com

Les caractères UTF-8 ne sont pas affichés correctement à Debian

Brève description de mon problème:
[ -8 caractères comme ß, §, etc.

Ce que j'ai déjà essayé:

  • dpkg-reconfigure locales Et uniquement généré EN_US.UTF-8
  • réglage LC_ALL, LANG et LANGUAGE _ à en_US.UTF-8 Dans le .bashrc Pour mon utilisateur et ma racine
  • réinstallées locales et libx11-Data (qui semble contenir toutes les données de langue)

Bien sûr, j'ai ré-connecté via SSH après toutes ces modifications et même essayé de redémarrer le serveur, même si je sais que cela ne résout aucun problème à Linux dans 99 9875% de tous les cas.

Informations sur mon système:
OS: Debian Stretch -> Linux 3.2.0-4-AMD64 # 1 SMP Debian 3.2.63-2 x86_64 GNU/Linux
[.____] Les lieux: v.2.22-7

Sortie de locale:

LANG=en_US.UTF-8
LANGUAGE=en_US.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

Lors de la frappe par exemple Ä dans la console et appuyez sur Entrée, j'obtiens -bash: $'\344': command not found.
[.____] Honnêtement, je suis à court d'idées, quelqu'un peut-il m'aider avec cela?

7
Steffen

Vous avez dit à Bash et à d'autres applications que votre terminal utilise le codage UTF-8. C'est bon que si votre terminal utilise réellement UTF-8. Bash ne peut pas décider que le codage du terminal est, le terminal doit décider.

Si vous souhaitez utiliser UTF-8, configurez votre terminal pour utiliser UTF-8. Depuis que vous utilisez SSH, vous devez configurer n'importe quel terminal que vous utilisez le client SSH pour utiliser UTF-8. C'est la valeur par défaut sur la plupart des systèmes modernes, mais apparemment, le vôtre n'est pas configuré de cette façon.

Vous devriez éviter de définir LC_CTYPE Explicitement dans un terminal: idéalement, le terminal définira ceci. Cependant, cela ne fonctionne pas toujours, en particulier sur SSH (sur de nombreux systèmes, le serveur SSH interdit au client de définir LC_CTYPE).

Si vous devez définir la variable d'environnement, le bon endroit serait .profile, ne pas .bashrc .