Problèmes OS X Terminal UTF-8

Bon, j’ai finalement obtenu un MacBook Air après 15 ans de linux. Et avant que je l’aie eu mon grand souci était le support UTF-8 parce que peu importe si je reçois des fichiers envoyés de Windows ou des mac-clients il y a toujours des problèmes avec l’encodage, alors que sur Ubuntu je peux être sûr que tous les programmes produire des données encodées en utf-8 parfaites.

Et maintenant, mon deuxième jour (aujourd’hui) avec OS X Im déchire mes cheveux par frustration. Pourquoi?

Lorsque j’ouvre Nano et que je tape des caractères suédois comme ÅÄÖ, il y a des caractères vides à la fin de la ligne (ce qui est probablement l’autre octet de chaque caractère)

Lorsque j’ouvre Python et que j’essaie d’utiliser des caractères suédois, rien ne sort du tout

Lorsque je me connecte à un serveur Ubuntu via SSH, je ne peux pas taper åäö dans bash, ça marche dans VIM (toujours en SSH). Et dans nano backspace ne fonctionne pas, mais si cochez la case “Supprimer envoie ctrl + H” dans les préférences du terminal, backspace commence à travailler dans nano mais cesse de fonctionner dans VIM.

J’ai essayé de décocher tous les autres encodages puis UTF-8 dans les préférences du terminal, mais cela ne semble pas fonctionner non plus.

Je suis sûr que chaque personne non américaine doit avoir les mêmes problèmes, alors pourquoi les réparer? Je veux juste un support UTF-8 complet …: ‘(

Pour moi, cela m’a aidé: j’ai vérifié les parameters régionaux sur mon shell local dans le terminal

 $ locale LANG="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" 

Puis connecté à un hôte distant que j’utilise via ssh et édité le fichier / etc / profile en tant que root – à la fin, j’ai ajouté une ligne:

 export LANG=cs_CZ.UTF-8 

Après la prochaine connexion, cela fonctionne très bien en bash, ls et nano.

Malheureusement, la boîte de dialog Préférences n’est pas toujours très utile, mais vous pourrez tout faire fonctionner en modifiant votre configuration.

Pour pouvoir taper des caractères suédois dans Terminal, ajoutez les lignes suivantes à votre ~ / .inputrc (vous devez probablement créer ce fichier):

 set input-meta on set output-meta on set convert-meta off 

Cela devrait faire le travail à la fois avec utf8 et d’autres codages dans bash , nano et beaucoup d’autres programmes. Certains programmes, comme tmux , dépendent également des locale . Ensuite, l’ajout par exemple de l’ export LC_ALL=en_US.UTF-8 à votre fichier ~/.profile devrait vous aider, mais gardez à l’esprit que quelques programmes (principalement obscurs) requièrent des parameters régionaux standard, donc si vous rencontrez des difficultés pour exécuter ou comstackr un programme , essayez de revenir à LC_ALL=C

Quelques références utiles:

Accédez à Terminal -> Preferences -> Advanced (Tab) accéder à International et sélectionnez Unicode (UTF-8) comme Character Encoding .

Et cochez la case Set locale environment variables on startup .

Voici un résumé de ce que vous devez faire sous OS X Mavericks (10.9). Tout cela est résumé dans

http://hints.macworld.com/article.php?story=20060825071728278

  1. Allez dans Terminal-> Préférences-> Paramètres-> Avancé.

    Sous International , assurez-vous que le codage des caractères est défini sur Unicode (UTF-8) .

    En outre, et ceci est la clé: sous Emulation , assurez-vous que l’ option Escape non-ASCII avec Control-V n’est pas cochée (c’est-à-dire qu’elle n’est pas définie).

    Ces deux parameters corrigent les problèmes pour Terminal.

  2. Assurez-vous que vos parameters régionaux sont définis sur quelque chose qui se termine par .UTF-8 . Tapez locale et regardez la ligne LC_CTYPE . S’il ne dit pas quelque chose comme en_US.UTF-8 (les choses avant que le point ne changent si vous utilisez des parameters régionaux non-US-English), alors dans votre .profile Bash .profile ou .bashrc dans votre répertoire personnel, ajoutez un ligne comme ceci:

     export LC_CTYPE=en_US.UTF-8 

    Cela corrigera les choses pour les programmes en ligne de commande en général.

  3. Ajoutez les lignes suivantes à .inputrc dans votre répertoire personnel (créez-le si nécessaire):

     set meta-flag on set input-meta on set output-meta on set convert-meta off 

    Cela rend le Bash propre sur huit bits, donc il transmettra les caractères UTF-8 sans les manipuler.

Gardez à l’esprit que vous devrez redémarrer Bash (par exemple, fermer et rouvrir la fenêtre Terminal) pour qu’il prenne en compte tous les parameters définis en 2 et 3 ci-dessus.

Réponse courte et polyvalente (correspond à d’autres langues nationales, même le lituanien ou le russe)

  • Terminal ouvert
  • edit .profile in home direkctory – nano .profile
  • append une export LC_ALL=en_US.UTF-8 ligne export LC_ALL=en_US.UTF-8
  • appuyez sur Ctrl + x et Y (quitter et enregistrer)

Cela a résolu pour moi même les petits pays nationaux rares. Vous devrez peut-être fermer et ouvrir Terminal pour que les modifications soient effectives.

Aussi, si vous aimez le comportement de Linux (utilisez beaucoup de raccourcis Alt comme Alt + ou Alt +, en mc), vous devez désactiver la fonction de la touche Option du style Mac: Terminal-> Préférences-> Profils-> Clavier et case à cocher: Use Option as Meta key

Vérifiez si nano a bien été construit avec le support UTF-8, en utilisant nano --version . La voici sur Cygwin:

 nano --version GNU nano version 2.2.5 (comstackd 21:04:20, Nov 3 2010) (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Email: nano@nano-editor.org Web: http://www.nano-editor.org/ Comstackd options: --enable-color --enable-extra --enable-multibuffer --enable-nanorc --enable-utf8 

Notez le dernier bit.

Pour que nano fonctionne comme vous le souhaitez, essayez:

 export LANG="UTF-8" 

Ou obtenez une nouvelle version de nano via MacPorts :

 # cf. http://www.macports.org/install.php port info nano port variants nano sudo port install nano +utf8 +color +no_wrap 

En ce qui concerne les problèmes ssh et UTF-8, commentez SendEnv LANG LC_* dans /etc/ssh_config .

Voir: Terminal sous OS X Lion: impossible d’écrire åäö sur une machine distante

Mon terminal agissait simplement de façon stupide, n’imprimant pas åäö. J’ai trouvé (et défini) ce paramètre: entrer la description de l'image ici

Sous Terminal -> Preferences... -> Profiles -> Advanced .

Semble avoir corrigé mon problème.

Depuis nano est une application de terminal. Je suppose que c’est plus un problème de terminal qu’un problème nano.

J’ai rencontré des problèmes similaires à OS X (je ne peux pas entrer et afficher les caractères chinois au terminal).

J’ai essayé de modifier les parameters du système via l’interface utilisateur d’OS X dont le véritable effet est de modifier la variable d’environnement LANG.

Donc, enfin, j’ajoute juste quelques trucs dans le fichier ~ / .bashrc pour résoudre le problème.

 # I'm Chinese and I prefer English manual export LC_COLLATE="zh_CN.UTF-8" export LC_CTYPE="zh_CN.UTF-8" export LC_MESSAGES="en_US.UTF-8" export LC_MONETARY="zh_CN.UTF-8" export LC_NUMERIC="zh_CN.UTF-8" export LC_TIME="zh_CN.UTF-8" 

BTW, ne définissez pas LC_ALL qui remplacera tous les autres parameters LC_ *.

Dans mon cas, utiliser simplement la commande uxterm au lieu de xterm résolu le problème. Il est disponible dans /opt/X11/bin/uxterm en installant le package XQuartz fourni par Apple.

… Ou laissez simplement le shell seul et utilisez TextWrangler qui vous permet également de choisir l’encodage et peut s’ouvrir de / sauvegarder directement sur votre box Ubuntu via sftp.