Je suis un peu confus sur la façon dont la bibliothèque standard va se comporter maintenant que Python (à partir de 3.0) est basé sur l'Unicode. Les modules tels que CGI et urllib utiliseront-ils des chaînes Unicode ou utiliseront-ils le nouveau type «bytes» et fourniront simplement des données codées?Est-ce que tout dans la bibliothèque standard traitera les chaînes comme unicode dans Python 3.0?
Répondre
Logiquement, un grand nombre de choses comme les messages électroniques codés en MIME, les URL, les documents XML, etc., doivent être renvoyés sous la forme bytes
et non en tant que chaînes. Cela pourrait causer une certaine consternation que les bibliothèques commencent à clouer pour Python 3 et les gens découvrent qu'ils doivent être plus conscients des bytes
/string
conversions qu'ils étaient pour str
/unicode
...
L'un des grands Les choses à propos de cette question (et de Python en général), c'est que vous pouvez vous amuser dans l'interprète! Python 3.0 rc1 is currently available for download.
>>> import urllib.request
>>> fh = urllib.request.urlopen('http://www.python.org/')
>>> print(type(fh.read(100)))
<class 'bytes'>
Je suis d'accord - J'ai compilé et installé rc1 plus tôt ce matin, j'ai passé trop de ma journée à jouer avec ça déjà! Je me demandais simplement s'il y avait une règle standard pour ce qui sera unicode et ce qui ne l'est pas. – hacama
Il y aura une danse en deux étapes ici. Voir Python 3000 and You.
L'étape 1 consiste à s'exécuter sous la version 3.0.
L'étape 2 est de repenser vos API pour, peut-être, faire quelque chose de plus sensé.
Le cours le plus probable est que les bibliothèques passeront à des chaînes Unicode pour rester aussi compatibles que possible avec leur fonctionnement habituel.
Ensuite, peut-être, certains vont passer en octets pour implémenter plus correctement les normes RFC pour les différents protocoles.
- 1. Importation de toute la bibliothèque standard Python
- 2. Lire des chaînes Unicode "crues" en Python
- 3. Expressions régulières dans les chaînes Unicode
- 4. Chaînes python c-api et unicode
- 5. Comment est-ce que str.translate fonctionne avec les chaînes Unicode?
- 6. Insensibilité à la casse dans les chaînes Python
- 7. Comment définir les chaînes en majuscules/minuscules dans Unicode?
- 8. Gestion des valeurs de substitution Unicode dans les chaînes Java
- 9. La libxml2 de Python ne peut pas analyser les chaînes Unicode
- 10. Existe-t-il un moyen de trier correctement les chaînes Unicode dans SQLite en utilisant Python?
- 11. Est-ce que generator.next() est visible dans python 3.0?
- 12. Ecriture de chaînes Unicode via sys.stdout en Python
- 13. Quels modules python sont disponibles pour aider à la démonisation dans la bibliothèque standard?
- 14. WM_CHAR non-unicode dans les fenêtres unicode
- 15. Accéder à la bibliothèque musicale dans iPhone OS 3.0
- 16. Accès à la bibliothèque iPod dans iPhone OS 3.0
- 17. Existe-t-il une fonction de retour à la ligne dans la bibliothèque standard java?
- 18. Inclure les bibliothèques standard Python dans votre distribution
- 19. Fonction standard pour l'échappement des chaînes dans SQL
- 20. python sauvegarde unicode dans le fichier
- 21. Les bases Unicode sous Windows
- 22. La bibliothèque Python httplib2 cache-t-elle les URI avec des chaînes GET?
- 23. Python (bibliothèque de création d'image): Rééchantillonner la chaîne comme argument
- 24. Est-ce que deux versions de la même bibliothèque peuvent coexister dans la même installation Python?
- 25. Python 3.0 smtplib
- 26. Unicode dans les ressources jar
- 27. chaîne Unicode dans les requêtes Hibernate
- 28. Python Unicode UnicodeEncodeError
- 29. Tix et Python 3.0
- 30. Python Unicode et Mimee
Peut-être que cette question ne devrait pas être répondu par d'autres programmeurs, mais par les développeurs Python (indirectement, de préférence, parcourir les discussions du développeur ici: http://mail.python.org/pipermail/python-3000/) – tzot