ECL:文件系统不接受带有扩展字符的文件名

ECL: The filesystem does not accept filenames with extended characters

如何打开名称中包含UTF-8字符的文件? 例如:

(open "~/a/你好.txt")

给这个:

The filesystem does not accept filenames with extended characters: "~/a/你好.txt"

我正在使用来自 gentoo 的 emerge 的 ecl 16.1.3。 同时,sbcl 可以打开文件。

我很确定 ECL 根本不支持 Unix 或 Linux 上的通用 unicode 文件名,但是它们在底层文件系统中被编码(我也不知道现在的 *nix 是怎么发生的,虽然我想现在一定有一个标准)。

您看到的特定错误源自 here, in pathname.d. If you then look in unixfsys.d 您会看到 ECL_NAMESTRING_FORCE_BASE_STRING 是到处传递给 ecl_namestring 的标志之一,而这不是以任何条件为条件。

所以至少你需要从头开始编译 ECL,更有可能它根本不支持通用的 unicode 文件名。