New submission from STINNER Victor <victor.stin...@haypocalc.com>:

The file system is hardcoded to UTF-8 on Mac OS X, whereas the locale 
encoding... depends on the locale. See issue #4388 for the details.

I think that we should use the locale encoding to encode and decode command 
line arguments. We have to create a new encoding variable used for the command 
line arguments:
 * Py_CommandLineEncoding
 * sys.getcmdlineencoding()
 * (no sys.setcmdlineencoding() please!)
 * ...

This encoding only should be used on POSIX: Windows native type is unicode 
(wchar_t*). It should be used to decode sys.argv and to encode child processes 
arguments (subprocess, os.exec*(), etc.)).

On Linux, it should change anything because the file system encoding is the 
locale encoding. Said differently, Python3 does already use the locale encoding 
for the command arguments on Linux.

If you pass a filename on the command line and then open it: the filename is 
decoded with the locale encoding, and then encoded with the file system 
encoding. I fear that it will fail if both encodings are differents...

----------
messages: 106139
nosy: haypo
priority: normal
severity: normal
status: open
title: Use locale encoding to decode sys.argv, not the file system encoding
versions: Python 3.2

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

Reply via email to