Hi Andi, Thanks, the JArray_byte() does what I needed - I was (wrongly) passing bytestring (which I think got automatically converted to unicode) and trying to get bytes of that string was not correct.
Though it would be interesting to find out if it is possible to pass string and get the bytes in java, I don't know if what conversion happening on the jni side, or only in java - i shall do some reading Example in python: In [4]: s = zlib.compress("python") In [5]: repr(s) Out[5]: "'x\\x9c+\\xa8,\\xc9\\xc8\\xcf\\x03\\x00\\tW\\x02\\xa3'" In [6]: lucene.JArray_byte(s) Out[6]: JArray<byte>(120, -100, 43, -88, 44, -55, -56, -49, 3, 0, 9, 87, 2, -93) The same thing in Jython: >>> s = zlib.compress("python") >>> s 'x\x9c+\xa8,\xc9\xc8\xcf\x03\x00\tW\x02\xa3' >>> repr(s) "'x\\x9c+\\xa8,\\xc9\\xc8\\xcf\\x03\\x00\\tW\\x02\\xa3'" >>> String(s).getBytes() array('b', [120, -62, -100, 43, -62, -88, 44, -61, -119, -61, -120, -61, -113, 3, 0, 9, 87, 2, -62, -93]) >>> String(s).getBytes('utf8') array('b', [120, -62, -100, 43, -62, -88, 44, -61, -119, -61, -120, -61, -113, 3, 0, 9, 87, 2, -62, -93]) >>> String(s).getBytes('utf16') array('b', [-2, -1, 0, 120, 0, -100, 0, 43, 0, -88, 0, 44, 0, -55, 0, -56, 0, -49, 0, 3, 0, 0, 0, 9, 0, 87, 0, 2, 0, -93]) >>> String(s).getBytes('ascii') array('b', [120, 63, 43, 63, 44, 63, 63, 63, 3, 0, 9, 87, 2, 63]) Roman On Thu, Feb 24, 2011 at 3:42 AM, Andi Vajda <va...@apache.org> wrote: > > On Thu, 24 Feb 2011, Roman Chyla wrote: > >> I would like to transfer results from python to java: >> >> hello = zlib.compress("hello") >> >> on the java side do: >> >> byte[] data = string.getBytes() >> >> But I am not successful. Is there any translation going on somewhere? > > Can you be more specific ? > Actual lines of code, errors, expected results, actual results... > > An array of bytes in JCC is not created with a string but a > JArray('byte')(len or str) > > >>> import lucene > >>> lucene.initVM() > <jcc.JCCEnv object at 0x1004100d8> > >>> lucene.JArray('byte')(10) > JArray<byte>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) > >>> lucene.JArray('byte')("abcd") > JArray<byte>(97, 98, 99, 100) > >>> > > Andi.. >