> On Windows NT/2K/XP the right thing to do is to use the wide char open > function such as > _CRTIMP FILE * __cdecl _wfopen(const wchar_t *, const wchar_t *); > _CRTIMP int __cdecl _wopen(const wchar_t *, int, ...); I agree. However: - Mark decided to take a different route, using fopen all the time, but encoding Unicode strings with the "mbcs" encoding, which calls MultiByteToWideCharCP with CP_ACP. AFAICT, this is correct as well (although it invokes an unneeded conversion of the string, since fopen, eventually, will convert the string back to Unicode - probably inside CreateFileExA - atleast on WinNT). In any case, passing Unicode objects to open() works just fine, atleast as long as they can be encoded in the ANSI code page. If you want to open a Chinese file name on a Russian Windows installation, you lose. - Skip was likely asking about a Unix installation, in which case all of this is irrelevant. > There may also be techniques for doing this on Windows 9x as the file > system stores Unicode file names but I have never looked into this. To my knowledge, VFAT32 doesn't - only NTFS does (which is not available on W9x). Regards, Martin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4