Est-ce que tout dans la bibliothèque standard traitera les chaînes comme unicode dans Python 3.0?

StackOverflow https://stackoverflow.com/questions/91205

Question

Je suis un peu confus quant au comportement de la bibliothèque standard maintenant que Python (à partir de la version 3.0) est basé sur Unicode. Des modules tels que CGI et urllib utiliseront-ils des chaînes unicode ou utiliseront-ils le nouveau type "octets" et fourniront-ils uniquement des données codées?

Était-ce utile?

La solution

Logiquement, beaucoup d'éléments, tels que les messages électroniques codés MIME, les URL, les documents XML, etc., doivent être renvoyés sous forme de octets et non de chaînes. Cela pourrait semer la consternation au moment où les bibliothèques commencent à être clouées pour Python 3 et que les utilisateurs découvrent qu'ils doivent être plus conscients des conversions octets / string qu'ils ne l'étaient auparavant. str / unicode ...

Autres conseils

Un des points positifs de cette question (et de Python en général) est que vous pouvez jouer avec l’interprète! Python 3.0 rc1 est actuellement disponible au téléchargement .

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

Il y aura une danse en deux temps ici. Voir Python 3000 et vous .

L’étape 1 consiste à utiliser la version 3.0.

L'étape 2 consiste à repenser votre API pour, peut-être, faire quelque chose de plus sensé.

Le plus probable est que les bibliothèques passeront aux chaînes unicode pour rester aussi compatibles que possible avec leur mode de fonctionnement actuel.

Ensuite, certains passeront peut-être aux octets pour mieux appliquer les normes RFC pour les divers protocoles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top