JInterface question

Olivier Sambourg olivier.sambourg@REDACTED
Wed Jun 15 18:33:42 CEST 2005


Hi again

I examined the data at byte level and here is what I found :

1> binary_to_list(term_to_binary("test")).
[131,107,0,4,116,101,115,116]

2> binary_to_list(term_to_binary(test)).
[131,100,0,4,116,101,115,116]

3> binary_to_list(term_to_binary({test, "test"})).
[131,104,2,100,0,4,116,101,115,116,107,0,4,116,101,115,116]

whereas :

OtpErlangString S = new OtpErlangString("test");
OtpOutputStream B = new OtpOutputStream(S);
B.toByteArray();
[107, 0, 4, 116, 101, 115, 116]

OtpErlangAtom S = new OtpErlangAtom("test");
OtpOutputStream B = new OtpOutputStream(S);
B.toByteArray();
[100, 0, 4, 116, 101, 115, 116]

OtpErlangObject O[] = {new OtpErlangAtom("test"), new 
OtpErlangString("test")};
OtpErlangTuple T = new OtpErlangTuple(O);
OtpOutputStream B = new OtpOutputStream(T);
B.toByteArray();
[104, 2, 100, 0, 4, 116, 101, 115, 116, 107, 0, 4, 116, 101, 115, 116]

It seems the only difference is the leading 131 byte in erlang. Can anyone 
confirm that it is always present ? If it is the case, I guess I have my 
solution.

Thanks again,

--
Olivier

2005/6/15, Olivier Sambourg <olivier.sambourg@REDACTED>:
> 
> Hi everyone
> 
> I'm trying to encapsulate erlang data inside an XMPP (jabber) stream and 
> retrieve the data with a java client.
> So on the server side it looks like this :
> 
> 1> httpd_util:encode_base64(binary_to_list(term_to_binary("test"))).
> "g2sABHRlc3Q="
> 
> And on the client side I've tried the following :
> OtpErlangString S = new OtpErlangString("test");
> OtpOutputStream B = new OtpOutputStream(B);
> Base64.encodeObject(B.toByteArray()); -> 
> "rO0ABXVyAAJbQqzzF/gGCFTgAgAAeHAAAAAHawAEdGVzdA=="
> Base64.encodeBytes(B.toByteArray()); -> "awAEdGVzdA=="
> Base64.encodeObject(B.toString()); -> 
> "rO0ABXQALmNvbS5lcmljc3Nvbi5vdHAuZXJsYW5nLk90cE91dHB1dFN0cmVhbUBmNjQzOGQ="
> 
> I've also tried to build an OtpErlangBinary from the OtpOutputStream, then 
> use the toString() method, to no avail...
> 
> (I'm using the Base64 java library from 
> http://iharder.sourceforge.net/base64/ but I guess the problem does not 
> come from this)
> 
> Do you have any suggestions to my problem ? I guess I'm just not using the 
> right transformation in Java to reproduce the 
> binary_to_list(term_to_binary()) operation...
> 
> Thank you
> 
> --
> Olivier
> 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20050615/25b40e33/attachment.htm>


More information about the erlang-questions mailing list