Указание внешнего формата на ECL
Как я могу указать внешний формат (например, (:crlf :|cp932|)
) на ECL?
Я хочу написать строку в файл с некоторой кодировкой. Поэтому я набираю свой REPL так:
(with-open-file (out "test.txt"
:direction :output
:external-format '(:crlf :|cp932|))
(write-string "some string" out))
Затем вызывается отладчик, и он показывает это:
The function EXT:MAKE-ENCODING is undefined.
[Condition of type UNDEFINED-FUNCTION]
Это неправильный путь...? Когда внешний формат :utf-8
, успешно написано...
- Версия ECL - 15.3.7
- ОС - Ubuntu 14.04
2 ответа
На основании §19.1.3. Внешние форматы в руководстве, похоже, что соответствующий символ на самом деле называется "CP819" и находится в пакете с именем "EXT", поэтому вы должны использовать ext: cp819, а не :|cp819|, Вы сможете использовать (: crlf ext: cp819), например:
(with-open-file (out "test.txt"
:direction :output
:external-format '(:crlf ext:cp932))
(write-string "some string" out))
Пожалуйста, вернитесь к ECL 15.2.21 или используйте git head - это ошибка, введенная в 15.3.7