Cuando comienzo Python desde Mac OS' Terminal.app, pitón reconoce la codificación como UTF-8:Hacer Emacs usar UTF-8 con Python modo interactivo
$ 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'
Esto funciona igual para python2.5.
Pero dentro de Emacs, la codificación es 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'
¿Cómo hago Emacs comunicarse con Python para que sys.stdout sabe usar UTF-8?
Editar: Dado que no tengo el representante de editar la respuesta aceptada, esto es precisamente lo que funcionó para mí en Aquaemacs 1.6, Mac OS 10.5.6.
En la pitón-mode-hook, he añadido la línea
(setenv "LANG" "en_GB.UTF-8")
Al parecer, Mac OS requiere "UTF-8", mientras que DFA dice que Ubuntu requiere "UTF-8".
Además, tuve que establecer la codificación de entrada/salida haciendo C-x RET p y luego escribiendo "utf-8" dos veces. Probablemente debería averiguar cómo configurar esto permanentemente.
Gracias a dfa y Jouni por ayudarme colectivamente a encontrar la respuesta.
Aquí es mi último 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: en ubuntu LANG debe configurarse en en_GB.UTF8, sin - – dfa
Gracias, corregí mi resumen. –
sin guion en ubuntu? Siempre uso el formulario UTF-8 y funciona. – u0b34a0f6ae