2012-04-16 14 views
7

Aunque configuré UTF-8 en todas partes (en mi proyecto lein, la personalización del grupo slime-lisp, el propio búfer de Emacs ...), sigo recibiendo este error cuando intento ejecutar código como (def beta "β"):No puedo enviar caracteres divertidos a SLIME

Coding system iso-latin-1-unix not suitable [...] 

ocurre sólo en Emacs, no cuando se ejecuta lein repl desde la línea de comandos, por ejemplo.

¿Qué podría estar causando esto? Estoy usando Ubuntu, si eso hace alguna diferencia.

+0

por cierto. ¿El archivo * .clj * tiene una codificación de caracteres especificada que cada archivo * .clj * tiene que usar? Por ejemplo, las especificaciones de idioma Go de Google dicen que cada archivo de código fuente * debe * ser UTF-8 mientras que Java no especifica nada (puede usar UTF-8 o ISO-8859-1 o lo que quiere para el código fuente * .java * archivos). ¿Qué pasa con el archivo * .clj *? – TacticalCoder

+0

El archivo 'load-file' incorporado sl sorbe cualquier cosa, así que no lo creo ... – vemv

+1

Todos los archivos .clj deben estar en UTF-8. Esto no está documentado en ningún lugar (desafortunadamente), pero está codificado en el compilador: https://github.com/clojure/clojure/blob/3297866c23dd01a5b0db14ed836336d128972aac/src/jvm/clojure/lang/Compiler.java#L6912 – raek

Respuesta

6

usted debe tener siguiente código en su .emacs:

(setq slime-net-coding-system 'utf-8-unix) 

y siguiendo en su project.clj cuando se ejecuta lein swank (o Configurar swank.encoding Java propiedad del sistema para utf-8):

:encoding "utf-8" 
+0

': la codificación" utf-8 "' hizo la diferencia para mí; Estaba usando ': jvm-opts [" -Dfile.encoding = utf-8 "]' en su lugar. ¡Gracias! – vemv

Cuestiones relacionadas