Quando inizio Python da Mac OS' Terminal.app, pitone riconosce la codifica UTF-8:Fai Emacs usa UTF-8 con Python in modalità Interattiva
$ 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'
Questo funziona lo stesso per python2.5.
Ma all'interno di Emacs, la codifica è 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'
Come faccio Emacs comunicano con Python in modo che sys.stdout sa usare UTF-8?
Edit: Dato che non ho il rappresentante di modificare la risposta accettata, qui è esattamente ciò che ha funzionato per me su Aquaemacs 1.6, Mac OS 10.5.6.
In python-mode-hook, ho aggiunto la linea
(setenv "LANG" "en_GB.UTF-8")
A quanto pare, Mac OS richiede "UTF-8", mentre DFA dice che Ubuntu richiede "UTF-8".
Inoltre, ho dovuto impostare la codifica di input/output facendo C-x RET p e quindi digitando "utf-8" due volte. Probabilmente dovrei scoprire come impostarlo in modo permanente.
Grazie a dfa e Jouni per aiutarmi collettivamente a trovare la risposta.
Qui è la mia ultima 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
nota: su Ubuntu LANG deve essere impostato su en_GB.UTF8, senza - – dfa
Grazie, ho corretto il mio riassunto. –
senza trattino su ubuntu? Io uso sempre il modulo UTF-8 e funziona. – u0b34a0f6ae