shift-jis-elixir/README.md

38 lines
1.1 KiB
Markdown

# SHIFT_JIS in Elixir with Codepagex
A demonstration of how to encode/decode SHIFT_JIS in Elixir with the [Codepagex](https://hex.pm/packages/codepagex) library
## Config
`SHIFT_JIS` is called `VENDORS/MICSFT/WINDOWS/CP932` in Codepagex. Enable it in [config](https://github.com/adamu/shift-jis-elixir/blob/main/config/config.exs):
```elixir
config :codepagex, :encodings, [
# CP392 is SHIFT_JIS
# https://en.wikipedia.org/wiki/Code_page_932_(Microsoft_Windows)
# Make sure to `mix deps.compile codepagex --force` after changing this
"VENDORS/MICSFT/WINDOWS/CP932"
]
```
## Encode/Decode
After that we can [encode/decode](https://github.com/adamu/shift-jis-elixir/blob/main/lib/shift_jis.ex):
```elixir
defmodule ShiftJis do
# Check config/config.exs to see how to enable this
@shift_jis "VENDORS/MICSFT/WINDOWS/CP932"
@doc ~S"""
iex> test = ShiftJis.encode("テスト")
<<131, 101, 131, 88, 131, 103>>
iex> ShiftJis.decode(test)
"テスト"
"""
def encode(str), do: Codepagex.from_string!(str, @shift_jis)
def decode(str), do: Codepagex.to_string!(str, @shift_jis)
end
```