Указание внешнего формата на 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

Другие вопросы по тегам