Как указать внешний формат (например, (:crlf :|cp932|)
) в ECL?Указание внешнего формата на ECL
Я хочу написать строку в файл с некоторой кодировкой. Так я печатаю в моем РЕПЛ так:
(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
Спасибо за ответ. Извините. Честно говоря, я прочитал руководство и попытался использовать '(: crlf ext: cp932)', но ECL возвращает «SIMPLE-ERROR» с сообщением «Не удается найти внешний символ CP932 в пакете <.» причина, почему я использую ': | cp932 |' is, он включен в возвращаемое значение функции 'ext: all-encodings' ... –
@ t-sin Хм, я сам не пользователь ECL, поэтому я не было способа проверить это. Тогда этот ответ, вероятно, имеет ту же проблему? Есть ли вероятность, что 'ext: | cp932 |' (так строчный, но в пакете) есть? Или 'ext :: cp932'? И т.д? Во всяком случае, это, по-видимому, является расхождением между руководством и реализацией, поэтому вы, вероятно, должны попасть в список рассылки/отслеживания ошибок ECL/etc. –
Похоже, что 'ext :: cp932' работает для меня. – BRFennPocock