Problème lors de la saisie de lettres accentuées à l’invite du terminal après le lancement de Python


0

Modifier:

Sous Mac OSX 10.6, que j'utilise Terminal.app ou iTerm.app, lorsque je lance Python, je ne peux plus taper de lettres accentuées (egé ou ä).

Des idées?

POSTE ORIGINAL:
J'utilise iTerm 0.10.

Je voudrais taper une chaîne avec des caractères accentués (par exemple é) mais quand je le fais à l'invite iTerm, aucun caractère n'apparaît.

Cela ne se produit pas dans le terminal.

Quelqu'un pourrait-il m'aider à découvrir le problème et à le résoudre éventuellement?

EDIT: Dans Terminal.app, je peux utiliser des caractères accentués. Cependant, lorsque je lance l'invite Python 2.71, je ne peux plus taper de caractères accentués. Lorsque je quitte python et que je reviens à l'invite du terminal, je peux à nouveau taper des caractères accentués.

Dans iTerm, bien que j'aie quitté Python et redémarré iTerm, je ne peux pas taper de caractères accentués (je ne sais pas si je pouvais le faire auparavant).


L'invite Python? Vous voulez dire le REPL Python s'exécutant à l'intérieur du terminal?
Ignacio Vazquez-Abrams

Aucun caractère n'apparaît dans le terminal? Ou seulement lorsque sortie par une printdéclaration? (par exemple, il apparaît lorsque vous le saisissez) Comment entrez-vous les caractères?
Correctifs

@ Ignacio: oui, à l'intérieur du terminal
Nicojo

@Patches: non, ce n'est pas ce que je veux dire. Si j'essaie de taper print "é", je ne pourrai pas taper la lettre é ...
Nicojo

Mais vous pouvez taper à l' invite du shell ?
Dennis Williamson

Réponses:



1

Vous devez définir explicitement le codage sur UTF-8 dans votre session iTerm. Instructions et fil utile .

J'avais l'habitude de faire cela sur l'ancienne version, je ne suis pas sûr que ce soit par défaut dans les plus récentes, car je ne l'ai pas utilisé depuis un certain temps.

EDIT: J'ai aussi trouvé cela qui peut vous aider.


Merci pour la suggestion. Malheureusement, ça n'aide pas. J'ai d'abord suivi le deuxième lien, créé un fichier .profile et redémarré iTerm. Puis j'ai vérifié l'encodage et c'est UTF-8. Mais je ne peux toujours pas taper é dans iTerm. Je ne peux pas non plus le faire dans Terminal.app lorsque j'utilise Python. Une autre idée?
Nicojo

Quelle est la valeur de LC_CTYPE? iTerm / iTerm2 ne chargera pas de .profile ou .bash_profile si votre profil / signet ne spécifie pas d'utiliser votre répertoire de base. Dans ce cas, mettez-le en .bashrc.
George

@ George: Désolé pour la réponse tardive; Je suis un peu inquiet de la situation au Japon, où je vis actuellement. LC_CTYPE est UTF-8 dans Terminal.app et USA ASCII dans iTerm, c’est-à-dire avant le démarrage de Python (une fois que python a été lancé, les paramètres de localisation ne fonctionnent pas). J'ai ajouté le .bashrc. Cela résout le problème avec iTerm. Mais le problème dans l'invite python reste ... Une idée?
Nicojo

0

Le problème de Python semble être un bogue / un problème dans la editlinebibliothèque d’Apple ; Cela ressemble à Optionl'ancien Metacomportement d' Unixy , où il met le bit haut sur le caractère suivant. Je ne pense pas que ce soit réparable sans remplacer Python, malheureusement, sauf si vous souhaitez désactiver entièrement l'édition en ligne. (Et Python de MacPorts fait la même chose.)

Si vous ne souhaitez désactiver la modification de la ligne, essayez ceci.

$ echo 'python: edit off' >> ~/.editrc

Eh bien, je ne suis pas sûr de comprendre ce que vous voulez dire: ce serait le cas si je devais réellement utiliser la touche Option, non? Mais j'utilise un clavier suédois et japonais. Le ä est une touche dédiée par exemple sur le clavier suédois. Désolé si je me trompe totalement ... Pourriez-vous clarifier?
Nicojo

Cela pourrait aggraver les choses; Je ne sais pas comment ça editlinemarche, mais probablement mal (ça remonte à une époque où personne ne se souciait vraiment de l'internationalisation). La edit offchose peut encore aider, cependant.
geekosaur

désolé, n'a rien fait ... aucune autre idée?
Nicojo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.