[erlang-questions] unicode + version < 17.0

Benoit Chesneau <>
Thu Apr 17 17:07:56 CEST 2014


Hi all,

I have a library where the input to the function should be given as utf8.

Inputs can be:

"http://www.詹姆斯.com/atomtests/iri/<http://www.xn--8ws00zhy3a.com/atomtests/iri/>
詹.html"

<<"http://www.詹姆斯.com/atomtests/iri/<http://www.xn--8ws00zhy3a.com/atomtests/iri/>
詹.html"/utf8>>

or sometimes <<"http://www.詹姆斯.com/atomtests/iri/<http://www.xn--8ws00zhy3a.com/atomtests/iri/>
詹.html">>

The library I am using should be compatible with the Erlang R15 to 17.0
 versions and I wonder if there is a graceful way to handle inputs
depending on the Erlang version

>From a discussion on IRC, I found I can easily convert a string to unicode
using the following function:

     UnicodeURL = case unicode:characters_to_binary(URL, InEnc) of
         URL1 when is_binary(URL1) ->
              URL1
         _ ->
              unicode:characters_to_binary(list_to_binary(URL))
      end

It also works on R16B if I set the source code encoding with the file
header `%% -*- coding: utf-8 -*-`.

But how to handle it when the source code encoding is latin1? How to handle
it in version < R16B? Is this possible?

If not, can we disable functions depending of an Erlang version in a module?


Any help is appreciated :)

- benoit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140417/f6b81a5b/attachment.html>


More information about the erlang-questions mailing list