On Wed, Jul 22, 2009 at 8:17 PM, Graham Dumpleton<graham.dumple...@gmail.com> wrote: > > 2009/7/22 Nimrod A. Abing <nimrod.ab...@gmail.com>: >> >> 2009/7/22 Graham Dumpleton <graham.dumple...@gmail.com>: >>> >>> 2009/7/22 Mike Plavsky <supermapl...@gmail.com>: >>>> >>>> Was using mod_wsgi 2.3, checked with mod_wsgi 2.5 and Python 2.6.1 - >>>> the result is the same. So yes, probably the issue is Windows >>>> specific. BTW do you test mod_wsgi on Windows? >>> >>> I have only recently starting compiling mod_wsgi on Windows myself. >>> About all I do is a hello world test. Bulk of recent changes are to >>> daemon mode and so aren't relevant to Windows. >>> >>> At a guess, I would say that the problem is that I am using plain old >>> fopen(). Apache on the other hand uses apr_file_open() which on >>> Windows does some madness with converting path from UTF-8 to Unicode >>> and then using CreateFileW(). >>> >>> The problem is that PyParser_SimpleParseFile(), as used by mod_wsgi, >>> in Python expects a FILE pointer. I am not sure I can get a FILE >>> pointer out of the native OS file handle that would be created by >>> apr_file_open()/CreateFileW() on Windows. >>> >>> The question is, if one passed UTF-8 string file filename to fopen() >>> on Windows, what happens? Should I be converting the UTF-8 string to >>> Unicode and using _wfopen() instead? >>> >>> The APR library has a semi private function utf8_to_unicode_path() >>> which they use for doing this, but is there an official Window >>> function that can use to convert UTF-8 string to wide string for >>> _wfopen(). >>> >>> Anyone with Windows programming knowledge who can advise what should be >>> done? >>> >> >> _wfopen() and fopen() are deprecated Win32 CRT functions. Use >> _wfopen_s() and fopen_s() instead. As for converting between UTF-8 and >> wchar_t it needs a bit of strong arming to get it done and normally >> you would just use iconv for it but there is a lightweight library for >> doing just that: http://www.bsdua.org/libbsdua.html#utf8 > > How about mbstowcs(). That is what I already use for a few things for > Python 3.X support.
That should work too and is locale aware, but that's also deprecated. Use mbstowcs_s instead. I think for string functions you are recommended to use the *_s versions now. I posted the other lightweight utf8 conversion lib because I was considering portability. -- Best Regards, Nimrod A. Abing W http://arsenic.ph/ W http://preownedcar.com/ W http://preownedbike.com/ W http://abing.gotdns.com/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "modwsgi" group. To post to this group, send email to modwsgi@googlegroups.com To unsubscribe from this group, send email to modwsgi+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en -~----------~----~----~----~------~----~------~--~---