On Tue, Jun 5, 2018 at 3:28 PM, Peter J. Holzer <hjp-pyt...@hjp.at> wrote: > > Now, if MacOS uses something like that, this is a different matter. > Presumably (since HFS+ is a native file system) the kernel deals with > NUL characters in a straightforward manner. It might even have a > (non-POSIX) API to expose such filenames. Even if it hasn't, presumably > the mapping back and forth is done in a very low level library used by > all (or most) of the applications, so that they all show consistently > the same filename.
The Linux subsystem in Windows 10 has to use character escaping. The root file system is stored in the NTFS directory "%LocalAppData%\Packages\<distro package name>\LocalState\rootfs". It escapes invalid NTFS characters (as implemented by the ntfs.sys driver) using the hex code prefixed by "#". Thus "#" itself has to be escaped as "#0023". For example: $ touch '\*?<>|#' $ ls '\*?<>|#' \*?<>|# With CMD in the above directory, we can see the real filename: > dir /b #* #005C#002A#003F#003C#003E#007C#0023 -- https://mail.python.org/mailman/listinfo/python-list