[Python-de] socket und umlaute

Martin v. Löwis martin at v.loewis.de
Sam Nov 22 13:25:16 CET 2003


"Olaf 'Ruebezahl' Radicke" <olaf_rad at gmx.de> writes:

> Meinen Unicode-String "command" wandel ich mit 
> command.encode("Latin-1") um weil ich mein XML-String
> sowieso als ISO-8859-1 kodieren und schicke das Ergebnis
> über mein Socket.
[...]
> Python ist nach wie vor meine beliebteste Programmiersprache,
> aber die fehlende Typensicherheit halte ich für ein Mangel.

Die Typisierung ist vielleicht problematisch - dieses Beispiel ist
aber ganz bestimmt keines für *fehlende* Typsicherheit. Im Gegenteil:
Das Socket-Objekt hat Dir ganz klar gesagt, dass man Unicode-Strings
nicht (direkt) über TCP transportieren kann, und also Byte-Strings
benötigt. Wäre Python nicht typsicher, hätte das Socket-Objekt den
Parameter irgendwie unsinnig interpretiert und Garbage übertragen.

> Zweitens, weil Python schneller sein könnte, wenn zwischen
> Typen unterschieden würde.

Python unterscheidet zwischen den Typen - das *kostet* Zeit, anstatt
Zeit einzusparen (auf die Zeit kann man aber nicht gut verzichten).

Ciao,
Martin