Neil Hodgson wrote: >>- But then, the wide API gives all results as Unicode. If you want to >> promote only those entries that need it, it really means that you >> only want to "demote" those that don't need it. But how can you tell >> whether an entry needs it? There is no API to find out. > > > I wrote a patch for os.listdir at > http://www.scintilla.org/difft.txt that uses WideCharToMultiByte to > check if a wide name can be represented in a particular code page and > only uses that representation if it fits.
This appears to be based on the usedDefault return value of WideCharToMultiByte. I believe this is insufficient: WideCharToMultiByte might convert Unicode characters to codepage characters in a lossy way, without using the default character. For example, it converts U+0308 (combining diaeresis) to U+00A8 (diaeresis) (or something like that, I forgot the exact details). So if you have, say, "p-umlaut" (i.e. U+0070 U+0308), it converts it to U+0070 U+00A8 (in the local code page). Trying to use this as a filename later fails. Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com