On Wed, 01 Oct 2008 14:33:23 +0200, [EMAIL PROTECTED] wrote:
> Ok, il problema nasce dal fatto che se all'encoder passo una stringa > fatta in questo modo, python si lamenta: > > input = open('foo.img','rb').read() > > Traceback (most recent call last): > File "testing.py", line 32, in <module> > d = encoder.encode(input) > UnicodeDecodeError: 'ascii' codec can't decode byte 0xdc in position > 6: ordinal > not in range(128) Cos'e' "encoder" alla riga 32 di testing.py? Tanto per chiarirci, anche se i codec del python sono generice trasformazioni biunivoche, quando si parla di testo di solito si intende: - encode: da unicode a str (es. iso-8859-1 o utf8) - decode: da str a unicode. Quindi, se testing.py sta provando a fare un "encode" sta in effetti aspettando un unicode (come tu gli passi). Se non ottieni il risultato atteso e' probabilmente perche' questo oggetto "encoder" non encoda allo stesso modo di come tu hai effettuato il "decode" dopo aver letto il file. A meno che l'encoder non sia qualcosa di "strano" (es. un compressore): come e' costruito quell'encoder? La cosa curiosa e' pero' la presenza di questa operazione "encoder.encode(input)" che fa da filtro. Che ci fa li'? Guardando il messaggio di errore sembra un encoder ascii, il che vuol dire che non sa lavorare con caratteri > 127: sicuro che ci debba stare? -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python