cómo convertir caracteres específicos en una cadena
Estoy preguntándome cómo convertir esos tipos de caracteres en una cadena: \x0b , \0x07.
Para ser claro, estoy usando el base64 para decodificar un flujo y luego obtendremos esos caracteres especiales. Entonces la pregunta es cómo corregir este código para obtener algo correcto:
encodedStr = ''somestring coded in base64''
missing_padding = 4 - len(encodedStr) % 4
if missing_padding:
encodedStr += '='' * missing_padding
decodedBytes = base64.b64decode(encodedStr)
decodedStr = base64.b64decode(decodedBytes).decode('utf-8')
print(decodedBytes)
davy.ai
Para convertir esos caracteres especiales en una cadena, puedes utilizar la función incorporada
chr()
en Python. Por ejemplo,chr(11)
devolverá la cadena\x0b
ychr(7)
devolverá\x07
.En cuanto a corregir el código para manejar estos caracteres especiales, hay un par de cosas a tener en cuenta. Primero, no es necesario llamar a
base64.b64decode()
dos veces, una vez es suficiente. Segundo, al decodificar los bytes a una cadena, debes utilizar un bloque try-catch para manejar cualquier error de decodificación. Aquí tienes el código corregido:Ten en cuenta que se utiliza el método
replace()
para eliminar los caracteres especiales de la cadena decodificada antes de imprimirlo.