1
votes

how do you open a file of which name contains UTF-8 character? For example:

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

give this:

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

I'm using ecl 16.1.3 from emerge from gentoo. Meantime, sbcl can open the file.

1
What is the result of (directory (merge-pathnames #p"a/*.txt" (user-homedir-pathname))) ?coredump
(print (directory (merge-pathnames #p"a/*.txt" (user-homedir-pathname)))) give this :(#P"/home/nil/a/ä½ å¥½.txt")C-Entropy

1 Answers

0
votes

I'm pretty sure ECL simply does not support general unicode filenames on Unix or Linux, however they get encoded in the underlying filesystem (I also don't know how that happens with *nix nowadays, although I guess there must be a standard now).

The specific error you're seeing originates here, in pathname.d. If you then look in unixfsys.d you'll see that ECL_NAMESTRING_FORCE_BASE_STRING is one of the flags passed to ecl_namestring all over the place, and this isn't conditionalized by anything.

So at the very least you would need to compile ECL from scratch, and more probably it simply does not support general unicode filenames at all.