lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


As I mentioned the other day, I've been developing a collection of Win32 API bindings. These bindings all use the Unicode versions of their corresponding Win32 functions; they take and return UTF-8 strings. Now, the problem is that the io, os, and lfs libraries don't take or return UTF-8 strings on Windows; they use the system's default code page, which is never UTF-8 (how I wish it was!). This means that if I do something like this:

appDataDir = shlobj.GetSpecialFolderPath(nil, shlobj.CSIDL_APPDATA)
f = io.open(appDataDir .. "\\foo.cfg")

the second statement won't work if the application data directory contains non-ASCII characters.

For consistency and to avoid debugging headaches on non-English Windows, I want to use UTF-8 everywhere. How should I solve this problem?

Thanks,
Matt