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 文件名。
如何打开名称中包含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 文件名。