D'accord, je me suis finalement procuré un MacBook Air après 15 ans de Linux. Et avant de l'obtenir, ma grande préoccupation était le support UTF-8 parce que peu importe si je reçois des fichiers depuis Windows ou des clients mac, il y a toujours des problèmes d'encodage, tandis que sur ubuntu, je peux être sûr que toutes les sorties quel que soit le programme produire des données encodées utf-8 parfaites.
Et maintenant, mon deuxième jour (aujourd'hui) avec OS X, je me déchire les cheveux par frustration. Pourquoi?
Lorsque j'ouvre Nano et que je tape des caractères suédois comme ÅÄÖ dedans, il met des caractères vides à la fin de la ligne (qui, je suppose, est l'autre octet de chaque caractère)
Lorsque j'ouvre python et que j'essaie d'utiliser des caractères suédois, il ne produit rien du tout
Lorsque je me connecte à un serveur Ubuntu via SSH, je ne peux pas taper åäö en bash, difficile cela fonctionne en VIM (toujours via SSH). Et dans nano backspace ne fonctionne pas, mais si cochez la case " Supprimer envoie ctrl + H "dans les préférences du terminal, le retour arrière commence à fonctionner 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 comment puis-je les résoudre? Je veux juste un support UTF-8 complet ...: '(
Pour moi, cela a aidé: j'ai vérifié les paramètres régionaux sur mon shell local dans le terminal
$ locale
LANG="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"
Ensuite, connecté à n'importe quel hôte distant que j'utilise via ssh et édité le fichier/etc/profile en tant que root - à la fin, j'ai ajouté la ligne:
export LANG=cs_CZ.UTF-8
Après la prochaine connexion, cela fonctionne très bien en bash, ls et nano.
Allez dans Terminal -> Preferences -> Advanced (Tab)
descendez dans International
et sélectionnez Unicode (UTF-8)
comme Character Encoding
.
Et cochez Set locale environment variables on startup
.
Malheureusement, la boîte de dialogue Préférences n'est pas toujours très utile, mais en peaufinant, vous devriez pouvoir tout faire fonctionner.
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 de nombreux autres programmes. Certains programmes, comme tmux
, dépendent également de locale
. Ensuite, en ajoutant par exemple export LC_ALL=en_US.UTF-8
à ton ~/.profile
le fichier devrait aider, mais gardez à l'esprit que quelques programmes (principalement obscurs) nécessitent des paramètres régionaux standard, donc si vous avez des problèmes pour exécuter ou compiler un programme, essayez de revenir à LC_ALL=C
.
Quelques références qui peuvent être utiles:
Ce qui suit est 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
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 c'est la clé: sous Emulation , assurez-vous que Échappez à l'entrée non ASCII avec Control-V est non cochée (ie pas set).
Ces deux paramètres corrigent les choses pour Terminal.
Assurez-vous que vos paramètres régionaux sont définis sur quelque chose qui se termine par .UTF-8
. Tapez locale
et regardez le LC_CTYPE
ligne. S'il ne dit pas quelque chose comme en_US.UTF-8
(ce qui précède le point peut changer si vous utilisez un environnement local autre que l'anglais américain), puis dans votre Bash .profile
ou .bashrc
dans votre répertoire personnel, ajoutez une ligne comme celle-ci:
export LC_CTYPE=en_US.UTF-8
Cela corrigera les choses pour les programmes de ligne de commande en général.
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 Bash propre à huit bits, il passera donc des caractères UTF-8 à l'intérieur et à l'extérieur sans les déranger.
N'oubliez pas que vous devrez redémarrer Bash (par exemple, fermer et rouvrir la fenêtre du terminal) pour qu'il prenne en compte tous les paramètres que vous avez définis en 2 et 3 ci-dessus.
Réponse courte et polyvalente (s'adapte à d'autres langues nationales, même le lituanien ou le russe)
nano .profile
export LC_ALL=en_US.UTF-8
Cela a résolu pour moi même des caractères nationaux rares de petits pays. Vous devrez peut-être fermer et ouvrir Terminal pour que les modifications soient effectives.
De plus, si vous aimez le comportement Linux (utilisez beaucoup de raccourcis Alt comme Alt +. Ou Alt +, en mc), vous devez désactiver la fonction de touche Option de style Mac: Terminal-> Préférences-> Profils-> Clavier et case à cocher: Use Option as Meta key
Mon terminal agissait simplement comme un idiot, n'imprimait pas åäö. J'ai trouvé (et défini) ce paramètre:
En dessous de Terminal -> Preferences... -> Profiles -> Advanced
.
Semble avoir résolu mon problème.
Pour que nano
fonctionne comme vous le souhaitez, essayez:
export LANG="UTF-8"
Ou obtenez une version plus récente 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
Vérifiez si nano a bien été construit avec le support UTF-8, en utilisant nano --version
. Le voici sur Cygwin:
nano --version
GNU nano version 2.2.5 (compiled 21:04:20, Nov 3 2010)
(C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009 Free Software Foundation, Inc.
Email: [email protected] Web: http://www.nano-editor.org/
Compiled options: --enable-color --enable-extra --enable-multibuffer
--enable-nanorc --enable-utf8
Notez le dernier bit.
Puisque nano est une application terminale. Je suppose que c'est plus un problème terminal qu'un problème nano.
J'ai rencontré des problèmes similaires sous OS X (je ne peux pas saisir et afficher les caractères chinois sur le terminal).
J'ai essayé de modifier les paramètres du système via l'interface utilisateur OS X dont le véritable effet est de changer la variable d'environnement LANG.
Donc, finalement, j'ajoute juste quelques trucs dans le ~/.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 paramètres LC_ *.
Essayer
.zshrc
ou .bashrc
:LANG = "en_US.UTF-8" LC_COLLATE = "en_US.UTF-8" LC_CTYPE = "en_US.UTF-8" LC_MESSAGES = " en_US.UTF-8 " LC_MONETARY =" en_US.UTF-8 " LC_NUMERIC =" en_US.UTF-8 " LC_TIME =" en_US.UTF-8 " LC_ALL = "en_US.UTF-8"
Dans mon cas, l'utilisation de la commande uxterm
au lieu de xterm
a résolu le problème. Il est disponible en /opt/X11/bin/uxterm
en installant le package XQuartz fourni par Apple.