Élément de mémo Python efficace 3
Notes sur Python efficace
Point 3: connaître la différence entre les octets, str, unicode (p5 ~ p7)
** En python, si vous ne comprenez pas le traitement des chaînes de caractères, vous tomberez dans un piège. ** **
En particulier
- En python2, les chaînes sont str et unicode
- Je n'ai jamais utilisé python2, donc je ne m'en suis pas vraiment rendu compte ici.
-
La chaîne contient str (le contenu est une chaîne d'octets) et unicode (si vous ne comprenez pas cela, vous tomberez dans le piège)
-
En python3, les chaînes sont des chaînes et des octets
--str et bytes ne peuvent pas être utilisés ensemble dans un opérateur
--str est unicode par défaut (bien que vous puissiez utiliser u '' séparément ...)
--encode de str en octets
--bytes to str est décodé
** Pièges courants **
- En python2, lors de la gestion de l'ASCII (7 bits), il fonctionne sans spécifier str ou unicode s'il se trouve dans la plage de caractères ASCII, mais s'il dépasse cette plage, le code de caractère est perdu et une exception se produit.
- Dans python3, le traitement lié aux opérations sur les fichiers est défini sur UTF-8 par défaut. Une erreur se produit lors de la tentative d'écriture de données binaires (ce qui semble être le point où les gens python2 trébuchent). Il est préférable de définir l'encodage sur «wb» (écriture binaire) au lieu de «w».