Ciao, sto usando uno script Python in congiunzione con JPype, un framework per usare classi Java in Python. Ho però un problema, forse legato ai decoding/encoding dei locales. Passiamo subito al codice:
from jpype import * import os import random import math import sys input = open('foo.img','rb').read().decode('ISO-8859-1') square = java.encoding(input) output = java.decoding() fd = open('foo_decode.img','wb') fd.write(output.encode('ISO-8859-1')) fd.close() sys.exit(0) java.encoding e java.decoding sono due metodi che, rispettivamente, prendono come argomento una java String e restituiscono una java String. JPype si occupa del bridging e converte una java String in una python str o unicode string, e viceversa. Di conseguenza, input e output, nel mio programma, sono due unicode. Qual è il problema? Dovrei ottenere un output identico all'input (byte per byte), ma non succede. Prima di tutto: python mi ha "obbligato" ad usare il .decode('ISO-8859-1') e .encode('ISO-8859-1'), altrimenti non avrebbe letto/scritto il file specificato. Inoltre, le librerie Java sono perfettamente funzionanti: ho provato io stesso ad usarle tramite lo stesso input (foo.img) e all'uscita del decoder ho ottenuto lo stesso file, quindi escludo degli errori delle lib. Sospetto che la differenza tra input e output siano dovute al decoding/encoding di python: sono proprio necessari? Voi che ne pensate? Vi ringrazio _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python