Bonjour,
Oui => io.StringIO
Le principe qui diminue les problèmes d'encodage dans un programme Python 2 est:
- tout ce qui rentre est converti en unicode le plus tôt possible
- tout ce qui sort est converti à partir de l'unicode dans le bon encodage le plus tard possible
- entre les 2, on ne travaille qu'en unicode.
En faisant ça, on ne fait que se rapprocher du comportement de Python 3.
Il faut se méfier de l'utf-8 pour travailler à l'intérieur d'un programme, parce que le nombre d'octets dépend du caractère. Par exemple, le mot "tête" comporte 4 caractères mais 5 octets en utf-8. Cela provoque des anomalies dans le traitement des chaines. En contrepartie, l'utf-8 est très bon pour communiquer avec l'extérieur du programme, parce qu'il a des capacités excellentes de représenter des caractères dans des langues étrangères. Ce n'est pas par hasard si c'est l'encodage par défaut des linux récents.
Partager