• [^] # Re: Trollons peu trollons bien

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

    Pour UCS-2, si un essaye de créer un caractère hors de [0; 65535], une exception est lancée.

    Non, Python 3 décompose le caractère en deux codes :

    Python 3.1a0 (py3k, Dec 7 2008, 21:13:32)
    [GCC 4.3.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> sys.maxunicode
    65535
    >>> s = chr(0x10000)
    >>> len(s)
    2
    >>> s
    '\U00010000'
    >>> s.encode('utf-32le')
    b'\x00\x00\x01\x00'

    (sous un build UCS-4, len(s) retournerait 1)