hexlify hexadecimal convertir binascii python encoding ascii

hexadecimal - python ascii to byte



Codificando una cadena a ascii (2)

Tengo una cadena larga que quiero codificar para ascii. Estoy haciendo:

s = s.encode(''ascii'', ''replace'')

pero entiendo:

''ascii'' codec can''t decode byte 0xc3 in position 2646: ordinal not in range(128)

(También he intentado ''ignore'' pero no ayuda.)

¿Qué estoy haciendo mal?


Su cadena ya está codificada con alguna codificación. Antes de codificarlo en ascii, debes decodificarlo primero .

Python es implicidad al intentar decodificarlo (Es por eso que obtienes UnicodeDecodeError no UnicodeEncodeError ).

Puede resolver el problema explicitando la decodificación de su cadena de bytes (usando la codificación apropiada) antes de tratar de volver a codificarlo en ascii.

Ejemplo:

s = s.decode(''some_encoding'').encode(''ascii'', ''replace'')

Utilice la codificación correcta que su cadena fue codificada en primer lugar, en lugar de ''some_encoding'' .

Debe saber qué codificación está usando una cadena antes de poder decodificarla. ¿De dónde sacaste el hilo?


encode debe usarse en objetos unicode para convertirlo a str . Si tiene un objeto str, debe usar la decode para convertirlo a unicode .