在ECL上指定外部格式

时间:2015-04-15 13:46:28

标签: common-lisp ecl

如何在ECL上指定外部格式(例如(:crlf :|cp932|))?

我想用一些编码将字符串写入文件。 所以我输入我的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
  • OS - Ubuntu 14.04

2 个答案:

答案 0 :(得分:3)

根据手册中的§19.1.3. External formats,看起来相应的符号实际上名为“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))

答案 1 :(得分:1)

请回退到ECL 15.2.21或使用git head - 这是15.3.7中引入的错误