Eryk Sun <eryk...@gmail.com> added the comment:

run_file encodes the file path via PyUnicode_EncodeFSDefault, which encodes as 
UTF-8 in Windows, starting with 3.6. PyRun_SimpleFileExFlags subsequently tries 
to open this encoded path via _Py_fopen, which calls fopen. The CRT expects an 
ANSI encoded path, so only the common ASCII subset will work. Non-ASCII paths 
will fail.

This could be addressed in _Py_fopen by decoding the path and calling _wfopen 
instead of fopen. 

Executing a .pyc also fails in 3.5 if the wide-character path can't be encoded 
as ANSI, but the 3.5 branch only accepts security fixes.

----------
components: +Interpreter Core, Unicode
nosy: +eryksun, ezio.melotti, vstinner
stage:  -> test needed
title: python3.6 can not reopen .pyc file with Chinese path -> Python 3.6 
cannot reopen .pyc file with non-ASCII path
type: compile error -> behavior
versions: +Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32381>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to