• [^] # Re: Tout les bugs ? vraiment ?

    Posté par . En réponse à la dépêche Sortie de Python 3.0 version finale. Évalué à 4.

    Non c'est un vrai problème (qui est en discussion sur python-devel et qui selon moi est fondamental).


    $ ./python `printf '\xff'`
    Could not convert argument 1 to string

    tonfa@pirzuine:/tmp/Python-3.0$ PATH=`printf '\xff'`:$PATH ./python
    Python 3.0 (r30:67503, Dec 6 2008, 11:42:46)
    [GCC 4.3.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import os
    >>> os.environ['PATH']
    Traceback (most recent call last):
    File "", line 1, in
    File "/tmp/Python-3.0/Lib/os.py", line 389, in __getitem__
    return self.data[self.keymap(key)]
    KeyError: 'PATH'


    On ne peut pas passer des arguments, et les variables d'environnement qui ne peuvent pas être décodées sont virées.

    Dans le cas au dessus, l'unicode est mal encodé mais les mêmes problèmes arrivent si tu lance ton programme avec LANG=C. Dans ce cas les arguments unicodes ne peuvent être lus, et si une variable d'environnement contient de l'unicode elle est supprimée.