[Python-Dev] Windows: Remove support of bytes filenames in the os module? (original) (raw)
Victor Stinner victor.stinner at gmail.com
Tue Feb 9 04:22:29 EST 2016
- Previous message (by thread): [Python-Dev] Windows: Remove support of bytes filenames in the os module?
- Next message (by thread): [Python-Dev] Windows: Remove support of bytes filenames in the os module?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2016-02-09 1:37 GMT+01:00 eryk sun <eryksun at gmail.com>:
For example, in codepage 932 (Japanese), it's an error if a lead byte (i.e. 0x81-0x9F, 0xE0-0xFC) is followed by a trailing byte with a value less than 0x40 (note that ASCII 0-9 is 0x30-0x39, so this is not uncommon). In this case the ANSI API substitutes the default character for Japanese, '・' (U+30FB, Katakana middle dot).
>>> locale.getpreferredencoding() 'cp932' >>> open(b'\xe05', 'w').close() >>> os.listdir('.') ['・'] >>> os.listdir(b'.') [b'\x81E'] All invalid sequences get mapped to '・', which roundtrips as b'\x81\x45', so you can't reliably create and open files with arbitrary bytes paths in this locale.
Oh, and I forgot to ask: what is your filesystem? Is it the same behaviour for NTFS, FAT32, network shared directories, etc.?
Victor
- Previous message (by thread): [Python-Dev] Windows: Remove support of bytes filenames in the os module?
- Next message (by thread): [Python-Dev] Windows: Remove support of bytes filenames in the os module?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]