5

我正在尝试通过quicklispslime中加载hunchentoot,并收到以下错误:

READ error during COMPILE-FILE:

  :ASCII stream decoding error on
  #<SB-SYS:FD-STREAM
    for "file [redacted]/dists/quicklisp/software/rfc2388-20120107-http/rfc2388.asd"
    {100607B723}>:

    the octet sequence #(196) cannot be decoded.

  (in form starting at line: 29, column: 29,
  file-position: 1615)
[Condition of type ASDF:LOAD-SYSTEM-DEFINITION-ERROR]

我在尝试运行时得到这个:

(ql:quickload "hunchentoot")

或者简单地说:

(ql:quickload "rfc2388")

似乎其他人也得到了 这个。我发现了一个可能答案的提示,说:

The system file is encoded as UTF-8. 
I'm not sure how to configure things so that SBCL on Windows starts with 
UTF-8 as its default encoding for loading sources, but that's what you 
need to do. 

从那里,我尝试过(基于例如 [this] 将以下内容添加到我的 emacs 配置中:

(set-language-environment "UTF-8")
(setq slime-lisp-implementations
      '((sbcl ("/opt/local/bin/sbcl") :coding-system utf-8-unix)))
(setq slime-net-coding-system 'utf-8-unix)

但是......即使在完全重新启动 emacs 之后,我仍然会遇到同样的错误,以确保我有一个正在读取上述配置的新 Slime。

那么,我错过了什么,和/或我怎样才能加载它?

提前致谢!(更感谢您的成功回答。;)

4

4 回答 4

2

你检查过你的语言环境设置吗?Emacs 配置只告诉它为 SLIME 和 SWANK 之间的通信设置什么编码系统。

您可以使用 /usr/bin/locale 检查区域设置,例如:

navi ~ » locale
LANG=pl_PL.UTF-8
LC_CTYPE=pl_PL.UTF-8
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=pl_PL.UTF-8
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES=C
LC_PAPER=pl_PL.UTF-8
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION=pl_PL.UTF-8
LC_ALL=
navi ~ »

如您所见,除了显示“C”消息外,我的所有地方都设置了 UTF-8。

于 2012-06-04T01:03:19.073 回答
0

试试这个:

切换到 .../quicklisp/dists/quicklisp/software/rfc2388* 目录并将 rfc2388.asd 加载到文本编辑器中。向下移动到 defsystem 表单的 :author 参数。用文件顶部给出的名称替换作者的姓名。使用 ASCII 编码存储文件。

当然,当库的新版本发布时,解决方法就会丢失。或者将修改后的项目存储在本地项目中。

于 2012-06-06T14:16:34.767 回答
0

在原始 UTF-8 编码仍然有效的情况下,调试器应该提供一个 INPUT-REPLACEMENT 选项来用替换字符串替换有问题的输入字符。选择该选项,键入“?” 或“x”或您喜欢的任何字符串,然后按 ENTER。然后加载完成。当然,这不是你每次都想做的事情。

所以最好的办法可能是给作者发一封邮件,要求提供一个用于 quicklisp 的 ascii 版本。

于 2012-06-06T14:29:27.080 回答
-1

您的 HOME 中应该有一个 .cache 目录,其中包含所有 fasl 文件。有时,当编译出现问题时,删除那些旧的 fasl 文件似乎对我有用。

于 2012-06-04T11:06:39.090 回答