For the Windows console: I played with all Windows functions, tried all
fonts and many code pages. I also read technical blog articles of Microsoft
employees. I gave up on this issue. It doesn't seem possible to support
fully Unicode the Windows console (at least the last time I checked). By
the way, it seems like Windows functions have bugs, and the code page 65001
fixes a few issues but introduces new issues...
Do you mean that it doesn't seem possible to support Unicode on the
Windows console by means of ANSI codepages? Because using the wide APIs
seems to work (as win_unicode_console shows). There are some issues like
non-BMP characters, which are encoded as surrogate pairs and the console
doesn't understand them for display (shows two boxes), but this is just
matter of display and not of corruption of the actual data (e.g. you can
copy the text from console). Also, there seems to be no font to support all
Unicode and AFAIK you cannot configure the console to use multiple fonts,
but again this is a display issue of the console window itself rather than
of the essential communication between Python and console.