[Python-Dev] Adding the 'path' module (was Re: Some RFE for review)

"Martin v. Löwis" martin at v.loewis.de
Sun Jul 17 09:41:12 CEST 2005


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


More information about the Python-Dev mailing list