Quand je commence Python à partir Terminal.app « Mac OS, python reconnaît l'encodage UTF-8:Faire Emacs utiliser UTF-8 avec Python en mode interactif
$ python3.0
Python 3.0.1 (r301:69556, May 18 2009, 16:44:01)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.stdout.encoding
'UTF-8'
Cela fonctionne même pour python2.5.
Mais à l'intérieur d'Emacs, l'encodage est US-ASCII.
Python 3.0.1 (r301:69556, May 18 2009, 16:44:01)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.stdout.encoding
'US-ASCII'
Comment puis-je faire Emacs communiquer avec Python afin que sys.stdout sait utiliser UTF-8?
Edit: Comme je n'ai pas le représentant de modifier la réponse acceptée, voici précisément ce qui a fonctionné pour moi sur Aquaemacs 1.6, Mac OS 10.5.6.
Dans le mode raccroché python, j'ai ajouté la ligne
(setenv "LANG" "en_GB.UTF-8")
Apparemment, Mac OS nécessite "UTF8", tandis que DFA dit que Ubuntu exige "UTF8".
En outre, j'ai dû définir le codage d'entrée/sortie en faisant C-x RET p, puis en tapant "utf-8" deux fois. Je devrais probablement trouver comment régler cela de façon permanente.
Merci à dfa et Jouni pour m'avoir aidé à trouver la réponse.
Voici mon dernier python-mode-hook:
(add-hook 'python-mode-hook
(lambda()
(set (make-variable-buffer-local 'beginning-of-defun-function)
'py-beginning-of-def-or-class)
(define-key py-mode-map "\C-c\C-z" 'py-shell)
(setq outline-regexp "def\\|class ")
(setenv "LANG" "en_GB.UTF-8"))) ; <-- *this* line is new
Note: sur ubuntu LANG doit être réglé sur en_GB.UTF8, sans - – dfa
Merci, j'ai corrigé mon résumé. –
sans tiret sur Ubuntu? J'utilise toujours le formulaire UTF-8 et ça marche. – u0b34a0f6ae