Jestem początkującym użytkownikiem zarówno Emacs, jak i Clojure, testując moje środowisko pracy za pomocą prostego przetwarzania tekstu. Mam problemy z pobieraniem REPLUSU ŚLIMAKA do poprawnego drukowania tekstu UTF-8 zapisanego w wektorze.Drukowanie tekstu UTF-8 w szlamie REPL
zacznę odczytując zawartość pliku (A Dictionary of Tocharian B) do wektora:
user> (def toch
(with-open [rdr (java.io.BufferedReader.
(java.io.FileReader. "/directory/toch.txt"))]
(vec (line-seq rdr))))
=> #'user/toch
I wtedy postarać się o linię z wektorem, a ja się śmieci:
user> (toch 44)
=> " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "
mogę wprowadzić ciąg znaków w szlamie REPL i dostać go z powrotem tak jak powinno być:
user> " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "
=> " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "
i c drukowanie na dysk bez problemu:
user> (binding [*out* (java.io.FileWriter. "test.txt")]
(prn (toch 44)))
=> nil
[Contents of test.txt: " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "]
I pobieranie linii z wektora z innych REPL (np. clj, lein repl) również działa dobrze. To tylko wtedy, gdy próbuję spojrzeć na zawartość wektora w REPLUMUMIE ŚLIMAKU, że jest jakikolwiek problem.
Co tu się dzieje? Czy jest jakaś nieporozumienie między Emacsem a Swank? Jak mogę to naprawić?
Dziwne. Jaki jest wynik '(int \ ṃ)' po wpisaniu do REPLIKU SLIME? –
To daje mi '7747'. – nmashton
Ponieważ jest to poprawna odpowiedź, musi być coś złego w sposobie odczytywania pliku. '((toch 44) 91)' powinno również dawać '7747'. Jeśli tak, to ten problem jest dla mnie całkowitą tajemnicą. Jeśli, z drugiej strony, nie, musisz sprawdzić, jakie kodowanie Java przyjmuje podczas czytania pliku. –