homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients a.badger, deleted250130, ezio.melotti, loewis, ncoghlan, r.david.murray, vstinner
Date 2013年12月13日.17:08:27
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1386954507.8.0.569298594543.issue19977@psf.upfronthosting.co.za>
In-reply-to
Content
os.fsencode(text) always fail if text cannot be encoded to sys.getfilesystemencoding(). surrogateescape doesn't help here.
Your example is "artificial", you should not get 'ä'. All OS data is decoded from the filesystem encoding using the surrogateescape error handler (except on Windows, where strict is used, but it's a different story, Python uses Unicode functions when available so don't worry). So all these data can always be encoded back to bytes using os.fsencode().
More generally, os.fsencode(os.fsdecode(read_data)) == read_data is always true on Unix, with any filesystem (locale) encoding.
You may get Unicode data from other sources like files or a GUI, but I don't see what can be done here.
History
Date User Action Args
2013年12月13日 17:08:27vstinnersetrecipients: + vstinner, loewis, ncoghlan, ezio.melotti, a.badger, r.david.murray, deleted250130
2013年12月13日 17:08:27vstinnersetmessageid: <1386954507.8.0.569298594543.issue19977@psf.upfronthosting.co.za>
2013年12月13日 17:08:27vstinnerlinkissue19977 messages
2013年12月13日 17:08:27vstinnercreate

AltStyle によって変換されたページ (->オリジナル) /