Demonstration of encoding/decoding shift-jis in Elixir using the Codepagex library.
config | ||
lib | ||
test | ||
.formatter.exs | ||
.gitignore | ||
mix.exs | ||
mix.lock | ||
README.md |
SHIFT_JIS in Elixir with Codepagex
A demonstration of how to encode/decode SHIFT_JIS in Elixir with the Codepagex library
Config
SHIFT_JIS
is called VENDORS/MICSFT/WINDOWS/CP932
in Codepagex. Enable it in config:
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:
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