2012-04-16 10 views
7

Obwohl ich überall UTF-8 eingestellt habe (in meinem Projekt, die slime-lisp Gruppenanpassung, der Emacs Puffer selbst ...), bekomme ich diesen Fehler, wenn ich versuche, Code wie z (def beta "β"):Kann keine lustigen Zeichen an SLIME senden

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

geschieht nur in Emacs, nicht, wenn lein repl von der Befehlszeile, zum Beispiel ausgeführt wird.

Was könnte das verursachen? Ich benutze Ubuntu, wenn das einen Unterschied macht.

+0

durch die Art und Weise. .. Hat * .clj * Datei eine Zeichenkodierung angegeben, die jede * .clj * Datei verwenden muss? Zum Beispiel sagt die Go-Sprachspezifikation von Google, dass jede Quellcodedatei * UTF-8 sein muss, während Java nichts spezifiziert (Sie können UTF-8 oder ISO-8859-1 oder den für * .java * Quelltext verwenden) Dateien). Was ist mit * .clj * Datei? – TacticalCoder

+0

Die eingebaute 'load-Datei' fn schlürft alles, also glaube ich nicht ... – vemv

+1

Alle .clj Dateien müssen in UTF-8 sein. Dies ist nirgendwo dokumentiert (leider), aber es ist fest im Compiler programmiert: https://github.com/clojure/clojure/blob/3297866c23dd01a5b0db14ed836336d128972aac/src/jvm/clojure/lang/Compiler.java#L6912 – raek

Antwort

6

sollten Sie in Ihrem .emacs folgenden Code haben:

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

und nach in Ihrem project.clj beim Ausführen lein swank (oder Setup swank.encoding Java-Systemeigenschaft utf-8):

:encoding "utf-8" 
+0

': Codierung" UTF-8 "' machte den Unterschied für mich; Ich habe stattdessen ': jvm-opts [" -Dfile.encoding = utf-8 "]' verwendet. Vielen Dank! – vemv

Verwandte Themen