Re: cannot open file if name contains accented characters

John Cowan <[email protected]>
Newsgroups gmane.lisp.scheme.chicken
Message-ID <CAD2gp_QOQh3wYjqmZmB5ktzpYzcHpD9hW=86PA-7L=78Omy4UQ@mail.gmail.com>
On Mon, Dec 25, 2023 at 6:07 AM <[email protected]> wrote:


> I'm not too familiar with the way Windows handles non-ASCII characters
> in operating system calls, but I assume that what gets passed to the C
> library runtime functions like fopen(3), etc. assumes a particular
> encoding.
>

Basically, there are two modes, one that assumes a particular encoding, as
you say (that's the default) and one that assumes wchar_t, which is always
UTF-16LE.  Which encoding is used in the first mode depends on the locale
setting.

From a quick glance at the Windows docs[1] it seems one needs to use
> "_fwopen" with a wchar_t string argument to pass extended characters.
>

Indeed, except that it's _wfopen, not _fwopen. Note that _fopen can involve
8-bit, 16-bit, or 8/16-bit mode depending on the encoding.

Sorry, if this is not overly helpful. We are currently in the process of
> improving
> the unicode support for the next major version of CHICKEN.
>

This makes me realize that posixwin needs to be changed in C6 so that it
always uses the second mode.  A simple way to do this is to use a UTF-8 to
UTF-16BE converter (and vice versa for things like dirread) right before
calling _fwopen.


>
> felix
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.