- D'abord,
str
en Python est représentée par Unicode
.
- Deuxièmement,
UTF-8
est une norme d'encodage pour coder Unicode
à la chaîne bytes
. Il existe de nombreuses normes d'encodage (par ex. UTF-16
, ASCII
, SHIFT-JIS
etc.).
Lorsque le client envoie des données à votre serveur et qu'il utilise UTF-8
ils envoient un groupe de bytes
pas str
.
Vous avez reçu un str
parce que la "bibliothèque" ou le "framework" que vous utilisez a implicitement converti une partie aléatoire bytes
a str
.
Sous le capot, il y a juste un tas de bytes
. Il suffit de demander à la "bibliothèque" de vous donner le contenu demandé en bytes
et vous vous occuperez du décodage vous-même (si la bibliothèque ne peut pas vous le donner, c'est qu'elle essaie de faire de la magie noire et vous ne devriez pas l'utiliser).
- Décoder
UTF-8
encodé bytes
a str
: bs.decode('utf-8')
- Encoder
str
a UTF-8
bytes
: s.encode('utf-8')
1 votes
Essayez ce lien http://evanjones.ca/python-utf8.html
0 votes
Je pense qu'un meilleur titre serait Comment convertir une chaîne en unicode sans traduction ?
3 votes
En 2018, python 3 si vous obtenez l'erreur de décodage ascii faire
"some_string".encode('utf-8').decode('utf-8')