Skip to content

Fast encoding conversion library for Erlang / Elixir

License

Notifications You must be signed in to change notification settings

processone/iconv

Repository files navigation

iconv

CI Coverage Status Hex version

Fast encoding conversion library for Erlang / Elixir

This library is a native binding to libiconv library.

Building

iconv library can be build as follow:

./configure && make

iconv is a rebar-compatible OTP application. Alternatively, you can build it with rebar:

rebar compile

Dependencies

iconv library depends on libiconv.

You can use configure option to pass custom path to libiconv library:

--with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib

Usage

You can start iconv with the following command:

$ erl -pa ebin -pa deps/*/ebin
Erlang/OTP 21 [erts-10.2.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Eshell V10.2.1  (abort with ^G)
1> application:start(iconv).
ok
2> FromEncoding = <<"utf-8">>. 
<<"utf-8">>
3> ToEncoding = <<"iso8859-15">>.
<<"iso8859-15">>
4> Text = <<"Hello">>.
<<"Hello">>
5> iconv:convert(FromEncoding, ToEncoding, Text).            
<<"Hello">>

Elixir

You can use iconv with Elixir mix by adding the dependency as follows:

  defp deps do
    [
      {:iconv, "~> 1.0.10"},
    ]
  end
$ mix deps.get
...
$ mix deps.compile
...
$ iex -S mix
Erlang/OTP 21 [erts-10.2.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Interactive Elixir (1.7.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :iconv.convert("utf-8", "iso8859-15", "Hello")
"Hello"

Development

Test

Unit test

You can run eunit test with the command:

$ rebar eunit