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'
[^] # Re: Trollons peu trollons bien
Posté par Antoine . En réponse à la dépêche Sortie de Python 3.0 version finale. Évalué à 5.
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)