[Python-Dev] Issue #8610: Set default file system encoding to ascii on error?
Victor Stinner
victor.stinner at haypocalc.com
Fri May 7 13:39:39 CEST 2010
Le vendredi 07 mai 2010 13:24:18, Antoine Pitrou a écrit :
> > UTF-8 is not a good choice for the fallback because it's incompatible
> > with other encodings like Latin1. I would like to fallback to ASCII on
> > error which is compatible with all encodings (thanks to
> > surrogateescape).
>
> What do you mean with "compatible with all encodings thanks to
> surrogateescape"?
>
> >>> "àéè".encode("ascii", "surrogateescape")
> ...
> UnicodeEncodeError: 'ascii' codec can't encode characters ...
ascii+surrogatescape can *decode* anything:
>>> b"a\xc3\xff".decode('ascii', 'surrogateescape')
'a\udcc3\udcff'
Encode with ascii+surrogatescape raise an UnicodeEncodeError for non-ASCII
(except for surrogates). I think it's better to raise an error than creating
utf8 filenames on a latin1 file system.
--
I forgot to mention Marc Lemburg propositing of creating a PYTHONFSENCODING
environment variable: #8622.
--
Victor Stinner
http://www.haypocalc.com/
More information about the Python-Dev
mailing list