La conversion de chaîne unicode en représentation hexadécimale
Je veux convertir en chaîne unicode à sa représentation hexadécimale.
Par exemple, u'\u041a\u0418\u0421\u0410'
doit être convertie en une "\xD0\x9A\xD0\x98\xD0\xA1\xD0\x90"
. J'ai essayé le code ci-dessous (python 2.7):
unicode_username.encode("utf-8").encode("hex")
Cependant, je reçois une chaîne de caractères:
'd09ad098d0a1d090'
Des suggestions comment je peux obtenir \xD0\x9A\xD0\x98\xD0\xA1\xD0\x90
?
- Ne pas faire le deuxième de l'encodage.
unicode_username.encode("utf-8")
->'\xd0\x9a\xd0\x98\xd0\xa1\xd0\x90'
. - La deuxième encoder ne fonctionne pas avec Python3, parce que les octets de l'objet renvoyé par le premier coder n'ont pas de
.encode()
méthode. Utilisationunicode_username.encode('utf-8').hex()
pour obtenir une chaîne de texte hex ASCII.
Vous devez vous connecter pour publier un commentaire.
Lorsque vous ne
string.encode('utf-8')
, il se transforme en hexadécimal.Mais si vous l'imprimez, vous allez obtenir un exemplaire original de chaîne unicode.
Si vous voulez le code hexadécimal, vous pouvez l'obtenir comme ça avec
repr()
fonction:vous pouvez également essayer:
La fonction join est utilisé avec le séparateur "\X " de sorte que, pour chaque octet hex de conversion de l' \X est inséré. La fonction join est fait pour chaque octet de la variable signature dans une boucle. Tout est rejoint/concaténés et imprimé.