Demonstration of encoding/decoding shift-jis in Elixir using the Codepagex library.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Adam Millerchip 3d12f83330 Configure to encode/decode shift-jis 11 months ago
config Configure to encode/decode shift-jis 11 months ago
lib Configure to encode/decode shift-jis 11 months ago
test Configure to encode/decode shift-jis 11 months ago
.formatter.exs mix new shift_jis 11 months ago
.gitignore mix new shift_jis 11 months ago
README.md Configure to encode/decode shift-jis 11 months ago
mix.exs Add codepagex 11 months ago
mix.lock Add codepagex 11 months ago

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