Frage

Ich bin ein wenig verwirrt darüber, wie die Standard-Bibliothek jetzt verhalten wird, dass Python (von 3,0) ist Unicode-basiert. Werden Module wie CGI und urllib Verwendung Unicode-Strings oder werden sie den neuen ‚Bytes‘ Typ verwenden und nur codierte Daten liefern?

War es hilfreich?

Lösung

Logischer eine Menge Dinge, wie MIME-codierte Mails, URLs, XML-Dokumente, und so sollten als bytes keine Strings zurückgegeben werden. Dies könnte eine gewisse Bestürzung verursachen, da die Bibliotheken für Python werden genagelt starten 3 und Menschen entdecken, dass sie besser über die bytes / string Umwandlungen sein müssen, als sie für str waren / unicode ...

Andere Tipps

Einer der großen Dinge über diese Frage (und Python im Allgemeinen) ist, dass man nur herumspielen im Interpreter! Python 3.0 rc1 steht zum Download derzeit zur Verfügung.

>>> import urllib.request
>>> fh = urllib.request.urlopen('http://www.python.org/')
>>> print(type(fh.read(100)))
<class 'bytes'>

Es wird hier ein zweistufiger Tanz sein. Siehe Python 3000 und Sie .

Schritt 1 unter 3.0 zu bekommen, ausgeführt wird.

Schritt 2 ist Ihr API zu überdenken, um vielleicht etwas tun, mehr sinnvoll.

Die wahrscheinlichste ist natürlich, dass die Bibliotheken zu Unicode-Strings schaltet so kompatibel wie möglich zu bleiben, mit deren Verwendung zu arbeiten.

Dann, vielleicht, schalten einige werden zu Bytes mehr richtig die RFC-Standards für die verschiedenen Protokolle zu implementieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top