[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