[Python-Dev] PEP 383: Non-decodable Bytes in System Character Interfaces

"Martin v. Löwis" martin at v.loewis.de
Mon Apr 27 21:48:27 CEST 2009

>>> There are still issues regarding how Windows and POSIX programs that
>>> are  sharing cross-mounted file systems might communicate file names
>>> between  each other, which is not at all clear from the PEP.  If this
>>> is an  insoluble or un-addressed issue, it should be stated.  (It is
>>> probably  insoluble, due to there being multiple ways that the
>>> cross-mounted file  systems might translate names; but if there are,
>>> can we learn something  from the rules the mounting systems use, to
>>> be compatible with (one of)  them, or not.
>> I'd say that's out of scope. A windows filesystem mounted on a UNIX host
>> should probably be mounted with a mapping to translate the Windows
>> Unicode names into whatever the sysadmin deems the locally most apt
>> byte encoding. But sys.getfilesystemencoding() is based on the current
>> user's locale settings, which need not be the same.
> And if it were, what would it do with files that can't be encoded with
> the locally most apt byte encoding? 

As Cameron says: it's out of the scope of the PEP. It really depends how
the operating system deals with them. Most likely, the files are not
accessible - not only not from Python, but also not accessible from
any other Unix program. Details depend on the specific operating system
software being used, and the specific parameters passed to it.

> That's where we might learn
> something about what behaviors are deemed acceptable.  Would such files
> be inaccessible?  Accessible with mangled names?  or what?

Difficult to tell. What operating system did you use, and what mount
options did you pass?

> And for a Unix filesystem mounted on a Windows host?  Or accessed via
> some network connection?

Same issue really: what specific mounting software did you use? Windows
cannot mount Unix file systems on its own, or through some network


More information about the Python-Dev mailing list