README.md
# GSM
GSM-7 encoding for Elixir
[](https://travis-ci.org/l1h3r/gsm)
[](https://coveralls.io/github/l1h3r/gsm?branch=master)
[](https://hex.pm/packages/gsm)
[](https://hex.pm/packages/gsm)
[GSM 03.38](https://en.wikipedia.org/wiki/GSM_03.38)
## Installation
```elixir
def deps do
[
{:gsm, "~> 0.1.0"}
]
end
```
## Usage
### GSM-7 conversion
```elixir
iex> GSM.to_gsm("foo")
"foo"
iex> GSM.to_gsm("bar :]")
"bar :\e>"
iex> GSM.to_gsm("баz")
** (GSM.BadCharacter) Unsupported GSM-7 character: "б"
```
### GSM-7 validation
```elixir
# Test if valid GSM string
iex> GSM.valid?("foo :]")
true
iex> GSM.valid?("баz")
false
# Test if 2-byte GSM character
iex> GSM.double?("|")
true
iex> GSM.double?(":")
false
```
### UTF-8 conversion
```elixir
iex> GSM.to_utf8("foo :\e>")
"foo :]"
iex> GSM.to_utf8("∫")
** (GSM.BadCharacter) Unsupported GSM-7 character: "∫"
```