Problems with encoding/decoding locales

Michele michele at nectarine.it
Tue Sep 30 19:50:57 CEST 2008


Hi there,
I'm using a python script in conjunction with a JPype, to run java classes.
So, here's the code:

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)

First of all, java.encoding and java.decoding are two methods that
respectively take a java string as an argument and return a java String.
JPype is the bridge between Java and Python, and converts automatically
a str or unicode pythonstring into a Java String.
So, input and output are two unicode strings. I were forced to use
decode() and encode() methods by python, otherwise it refuses to read
foo.img file.
Here's the strange behaviour: when I write the output in the
'foo_decode.img', I don't reassemble the original file; I already tested
the java encoding/decoding libraries with the same input file, and what
the decoding process returns is the original file.
I suspect that the discrepancy is due to encoding/decoding of
ISO-8859-1: is that required?
What do you think about?

Thank you
       
   


   



More information about the Python-list mailing list