如何解决ECL:文件系统不接受带有扩展字符的文件名
如何打开名称包含 UTF-8 字符的文件? 例如:
(open "~/a/你好.txt")
给这个:
The filesystem does not accept filenames with extended characters: "~/a/你好.txt"
我正在使用来自 gentoo 的 ecl 16.1.3。 同时,sbcl 可以打开文件。
解决方法
我很确定 ECL 根本不支持 Unix 或 Linux 上的通用 unicode 文件名,但是它们在底层文件系统中被编码(我也不知道现在 *nix 是如何发生的,尽管我猜一定有现在是标准)。
您看到的特定错误源自 here,in pathname.d
。如果您随后查看 unixfsys.d
,您会看到 ECL_NAMESTRING_FORCE_BASE_STRING
是到处传递给 ecl_namestring
的标志之一,并且这不受任何条件限制。
所以至少你需要从头开始编译 ECL,而且很可能它根本不支持通用的 unicode 文件名。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。