[Python-de] Re: Alptraum Unicode

Stefan Schwarzer sschwarzer at sschwarzer.net
Sam Dez 27 00:40:07 CET 2003


Hallo Olaf,

On Fri, 2003-12-26 22:00:46 +0100, Olaf 'Ruebezahl' Radicke wrote:
> Am Freitag 26 Dezember 2003 21:29 schrieb Olaf 'Ruebezahl' Radicke:
> > Wenn mein Code nicht schon so Komplex währe (ca. > 6000 Zeilen), würde
> > ich ein paar Code schnipsel schicken.
> > Was ich schon an Zeit verplempert habe, Unicode-Fehler zu finden!!!
> > Das ist bei Python wie Blindflug. Man weis erst was man vor sich
> > hat( ASCII/uni-Code), wenn es Ärger gibt. In meinen Prog wir ziemlich
> > heftig zwischen LaTeX, SQL und XML hin und her geparst. Ich muss
> > immer mit Sonderzeichen rechnen aber ich weis nie - wirklich - ob
> > die Codierung gerade eindeutig ist oder nicht. Das Leben mit Python
> > währe um einiges einfacher, wenn ein Unicode-String eine Klasse
> > (bzw. Typ) währe.  Ich bin gerade dazu gezwungen "Bananen-Software"
> > (reift beim Kunden) zu hacken, weil ich garnicht soviel Test schreiben
> > kann, um sich zu sein, das überall im Code schon mal ein Sonderzeichen
> > durchgelaufen ist, wo mal eins durch laufen könnte.

falls das nicht schon der Fall ist, solltest du für die Umwandlung
zwischen den verschiedenen Encodings definierte Komponenten vorsehen
und dann nur diese verwenden. Es ist sicher fehleranfällig, bei jedem
String, den man "in die Hand nimmt", zu überlegen, in welchem Encoding
er vorliegt. Dein Design sollte diese Notwendigkeit von vornherein
vermeiden. In deinem Programm solltest du möglichst alles in Unicode
handhaben, und nur beim Übergang zu einem anderen Teilsystem
umwandeln, wenn es denn wirklich nötig ist.

Sollte das blauäugig klingen, liegt es einfach daran, dass ich zu
wenig über dein Programm weiß. ;-) Nach deiner Beschreibung vermute
ich jedenfalls eher ein Design-Problem, und nicht so sehr, dass der
Umgang mit Unicode in Python notwendigerweise ekelhaft sein muss.

Viel Erfolg und viele Grüße
 Stefan