Я начинающий пользователь Emacs и Clojure, тестирую свою рабочую среду с помощью простой обработки текста. У меня проблемы с получением Slime REPL для правильной печати текста UTF-8, хранящегося в векторе.
Я начинаю с чтения содержимого файла (словаря тохарского языка B) в вектор:
user> (def toch
(with-open [rdr (java.io.BufferedReader.
(java.io.FileReader. "/directory/toch.txt"))]
(vec (line-seq rdr))))
=> #'user/toch
Затем я пытаюсь получить строку из вектора и получаю мусор:
user> (toch 44)
=> " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "
Я могу ввести строку в Slime REPL и вернуть ее в том виде, в каком она должна быть:
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). "
И я могу без проблем распечатать на диск:
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). "]
И получение строк из вектора из других REPL (например, clj, lein repl) также работает нормально. Проблема возникает только тогда, когда я пытаюсь посмотреть содержимое вектора в Slime REPL.
Что тут происходит? Есть ли какое-то недопонимание между Emacs и Swank? Как я могу это исправить?
(int \ṃ)
при входе в SLIME REPL? - person Matthias Benkard   schedule 17.02.2012((toch 44) 91)
также должен дать7747
. Если да, то этот вопрос для меня полная загадка. Если, с другой стороны, это не так, вам нужно проверить, какую кодировку принимает Java при чтении файла. - person Matthias Benkard   schedule 18.02.2012(int (.charAt (toch 44) 91))
это то, что я имел в виду. - person Matthias Benkard   schedule 18.02.2012