Domanda

Io sono un po ' confuso su come la libreria standard si comporterà ora che Python (3,0) è basato su unicode.Sarà moduli come CGI e urllib utilizzare le stringhe unicode o utilizzare il nuovo 'byte' tipo e di fornire dati codificati?

È stato utile?

Soluzione

Logicamente un sacco di cose come codifica MIME messaggi di posta elettronica, Url, documenti XML, e così via dovrebbe essere restituito bytes non stringhe.Questo potrebbe causare qualche costernazione come le librerie iniziare ad essere inchiodato per Python 3 e persone scoprono di essere più consapevoli dell' bytes/string le conversioni di meno str/unicode ...

Altri suggerimenti

Una delle grandi cose su questa questione (e Python in generale) è che si può solo pasticciare in giro per l'interprete! Python 3.0 rc1 è attualmente disponibile per il download.

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

Ci sarà una due-passo di danza qui.Vedere Python 3000 e.

Fase 1 è quello di ottenere l'esecuzione in 3.0.

Fase 2 è di ripensare il vostro API, forse, fare qualcosa di più sensato.

La più probabile è che le librerie passa per le stringhe unicode per rimanere il più possibile compatibile con come essi sono utilizzati per lavoro.

Quindi, forse, alcuni passerà al byte più applicare correttamente le RFC standard per i vari protocolli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top