[erlang-questions] Binary to string conversion

Attila Rajmund Nohl attila.r.nohl@REDACTED
Wed May 10 14:19:33 CEST 2017


Hello!

Have you actually tried any of them? I presume this is what you need:

5> B= <<97,0,109,0,97,0,110,0>>.
<<97,0,109,0,97,0,110,0>>
9> unicode:characters_to_list(B, {utf16, little}).
"aman"


2017-05-10 13:36 GMT+02:00 Abhishek Ranjan <abhishek@REDACTED>:
> I had a look at the unicode library of erlang and it contained following
> BIFs
>
> bin_is_7bit/1
> bom_to_encoding/1
> characters_to_binary/1
> characters_to_binary/2
> characters_to_binary/3
> characters_to_binary_int/2
> characters_to_list/1
> characters_to_list/2
> characters_to_list_int/2
> encoding_to_bom/1
> module_info/0
> module_info/1
>
> But what I have is already a binary and I need it to convert into string,or
> given the erlang's logic of storing string as a list of characters I need
> binary to list converter but there isn't any as it looks like to me.
>
> Please share suggestions.
>
>
>> On May 10, 2017 at 4:37 PM Hugo Mills <hugo@REDACTED> wrote:
>>
>>
>> On Wed, May 10, 2017 at 04:11:18PM +0530, Abhishek Ranjan wrote:
>> > I have set up a chat application using ejabberd(built using erlang) and
>> > Pidgin.
>> >
>> > I have witnessed a proceeding where when I print out a message sent by
>> > the client to server on ejabberd it comes out as string
>> >
>> > For example,if I send a message as
>> >
>> > aman
>> >
>> > from the pidgin and print it inside the module containing ejabberd hook
>> > as CustomMod.erl using
>> >
>> > >
>> > > Bin=xmpp:get_text(Packet#message.body),
>> > > Name=binary_to_list(Bin),
>> > >
>> > > ?INFO_MSG("The value of Name is ~p~n",[Name]),
>> > >
>> >
>> > the output comes as "aman"
>> >
>> > but I have a simple erlang module also for login as login.erl and it
>> > does not implement any ejabberd behavior, but is called from within
>> > CustomMod.erl when I print this message out in this module it comes enclosed
>> > within these << >> but are separated by 0's like
>> >
>> > aman becomes here as <<97,0,109,0,97,0,110,0>>
>>
>> That looks like little-endian UTF-16 to me. You probably need to do
>> some Unicode conversion on your binary.
>>
>> Hugo.
>>
>> > which on doing binary_to_list(Variable) inside my login.erl I get->
>> > [97,0,109,0,97,0,110,0]
>> >
>> > (where Variable is the value enclosed within <<>>)
>> >
>> > Can anyone tell me why is it happening and what is the way to get the
>> > value aman in login.erl also?
>> >
>> >
>> > Regards,
>> >
>> > Abhishek
>>
>> > _______________________________________________
>> > erlang-questions mailing list
>> > erlang-questions@REDACTED
>> > http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>> --
>> Hugo Mills | There are two hard problems in computer science:
>> hugo@REDACTED carfax.org.uk | Cache invalidation, naming things, and off-by-one
>> http://carfax.org.uk/ | errors.
>> PGP: E2AB1DE4 |
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list