我正在尝试通过hunchentoot中的quicklisp加载slime,并收到以下错误:
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")
其他人似乎也是getting this。我找到一个hint可能的答案,说:
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正在阅读上面的配置。
那么,我缺少什么,和/或我怎样才能加载它?
提前致谢! (更多的谢谢你的回答。)
答案 0 :(得分: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”消息外,你可以看到,除了显示“C”消息之外,我还可以在任何地方设置UTF-8。
答案 1 :(得分:0)
试试这个:
转换到... / quicklisp / dists / quicklisp / software / rfc2388 *目录并将rfc2388.asd加载到文本编辑器中。 下移到defsystem表单的:author参数。用文件顶部给出的名称替换作者姓名。 使用ASCII编码存储文件。
当然,当发布新版本的库时,解决方法会丢失。或者将修改后的项目存储在本地项目中。
答案 2 :(得分:0)
原始的UTF-8编码仍然有效,DEBUGGER应该提供一个INPUT-REPLACEMENT选项,用替换字符串替换有问题的输入字符。选择该选项,输入&#34;?&#34;或&#34; x&#34;或者在提示符下您喜欢的任何字符串,然后按ENTER键。然后负载完成。当然,这不是你每次都想做的事情。
因此,最好的想法可能是向作者发送电子邮件并要求为quicklisp提供ascii版本。
答案 3 :(得分:-1)
HOME中应该有一个包含所有fasl文件的.cache目录。当编译出错时,有时删除那些旧的fasl文件似乎对我有用。