August 2018
Intermediate to advanced
366 pages
10h 14m
English
decode_filename tries to do two things: first of all, it asks Python what the expected filesystem encoding according to the OS is. Once that's known, it tries to decode the provided filename using that encoding. If it fails, it decodes it using surrogateescape.
What this actually means is if you fail to decode it, decode it into fake characters that we are going to use just to be able to represent it as text.
This is really convenient because that way we are able to manage the filename as text even thought we don't know its encoding, and when it is encoded back to bytes with surrogateescape, it will lead back to its original sequence of bytes.
When the filename is encoded in the same encoding as our system, it's easy to see ...