Mon code:Comment Covert les octets à la sortie manuelle lorsque je lis un fichier PE
# -*- coding: utf-8 -*- #
if __name__ == "__main__":
try:
f = open("test.dll", 'rb')
context = f.read()
f.close()
print(context)
except Exception as e:
print(e)
La sortie sont des octets comme ça quand je l'utilise python3:
B'B \ » MZ \ x90 \ x00 \ x03 \ x00 \ x00 \ x00 \ x04 \ x00 \ x00 \ x00 \ xff \ xff \ x00 \ x00 \ xb8 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 @ \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ xf0 \ x00 \ x00 \ x00 \ x0e \ x1f \ xba \ x0e \ x00 \ xb4 \ t \ xcd! \ xb8 \ x01L \ xcd! Ceci programme ne peut pas être exécuté en mode DOS. \ r \ r \ n $ \ x00 \ x00 \ x00 \ x00
La sortie comme ce que je veux quand je l'utilise python2:
MZ? ? @? ? ??? L? Ce programme ne peut pas être exécuté en mode DOS.
$ 2! 跪 v @ v @ 住 住 v @ 住 8B @ 住 8^ @ 住 8T ‰ @ 住 8D
Comment puis-je obtenir la sortie comme python2 avec python3?
PS: J'essaie de décoder la sortie comme ceci:
context = f.read().decode("utf-8")
Mais il y a une erreur comme ceci:
codec 'UTF-8' ne peut pas décoder octet 0x90 en position 2: octet de début invalide
L'autre type de décodage a la même erreur.
Comment puis-je obtenir la bonne sortie? Merci beaucoup.
essayé 'decode (" utf-8 ", errors =" ignore ")'? –
Merci beaucoup, ça marche – sylan215