Comment éviter le “ValueError: non valide \x échapper à” l'erreur dans ce cas particulier?
Évidemment le joker %x n'est pas reconnu comme un octet de valeur hexadécimale, donc, je reçois le message d'erreur "ValueError: non valide \x échapper".
Comment l'éviter? Je ne suis pas familier avec le langage python.
for i in xrange(0,length):
if i % 2 == 0:
tempArray.append(unpack("B",payload_raw[x])[0]^key)
x += 1
else:
randomByte = random.randint(65,90)
tempArray.append(randomByte)
for i in range(0,len(tempArray)):
tempArray[i]="\x%x"%tempArray[i]
for i in range(0,len(tempArray),15):
outArray.append("\n'"+"".join(tempArray[i:i+15])+"'")
outArray = "".join(outArray)
devide = "i % 2;"
open_structure = open(structure).read()
code = open_structure % (junkA,outArray,junkB,key,length,devide)
b.write(code)
b.flush()
Qu'espérez-vous accomplir avec cette ligne?
\x<whatever>
ne faire quelque chose d'utile dans une chaîne littérale; vous ne pouvez pas utiliser la mise en forme de chaîne de cette façon.OriginalL'auteur JohnnyFromBF | 2012-08-30
Vous devez vous connecter pour publier un commentaire.
chr()
vous donnera le bytestring une valeur entre 0 et 255.OriginalL'auteur Ignacio Vazquez-Abrams
Ignacio réponse est la bonne, mais il y a aussi le côté Obscur de la Force:
De sorte que vous pourrait avez résolu votre problème à l'aide d'un raw littéral(r'\x' au lieu de '\x'), et la conversion de la fuite sur les personnages avec la
str.decode
méthode.OriginalL'auteur Bakuriu