bei bestimmten chin. Schriftzeichen (𠃓𤔔𤴓𠕁𠂇𦍌𠂉𠀎 und weitere, alle aus dem Bereich U+2xxxx) meint Python len(s) ist gleich 2. Außerdem beendet sich IDLE einfach, wenn man das Zeichen in die Konsole kopieren will (unter Windows, Python 3.2.2).
Kann das evtl. jemand bestätigen?
Klar. "Verschlucken" ist allerdings etwas falsch beschrieben: das passiert in voller Absicht. Es handelt sich um Zeichen außerhalb der Basic Multilingual Plane, mit Codes größer 0xFFFF. Diese Zeichen können nicht in 2 Byte kodiert werden. Python 3.2 benutzt unter Windows deshalb UTF-16, und da werden für so ein Zeichen 2 "code units" benötigt; für BMP-Zeichen aber nur eins. Unter Linux verwendet Python i.d.R. UTF-32, wo die "code unit" vier Byte groß ist und jedes Zeichen also die Länge 1 hat. Unter Windows wird UTF-16 verwendet aus Kompatibilität zum Windows-API. In Python 3.3 wird, dank PEP 393, auf allen Systemen einheitlich eine variable interne Darstellung verwendet, sodass diese Zeichen dann die Länge 1 haben (und vier Byte im Speicher benötigen). Der IDLE-Absturz wird in 3.3 auch behoben sein. Allerdings kann IDLE die Zeichen nicht darstellen, weil Tk auf die BMP beschränkt ist. Ciao, Martin