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

Rispondere a