Configure to encode/decode shift-jis
This commit is contained in:
parent
5742b11d82
commit
3d12f83330
4 changed files with 40 additions and 31 deletions
40
README.md
40
README.md
|
@ -1,21 +1,37 @@
|
|||
# ShiftJis
|
||||
# SHIFT_JIS in Elixir with Codepagex
|
||||
|
||||
**TODO: Add description**
|
||||
A demonstration of how to encode/decode SHIFT_JIS in Elixir with the [Codepagex](https://hex.pm/packages/codepagex) library
|
||||
|
||||
## Installation
|
||||
## Config
|
||||
|
||||
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
|
||||
by adding `shift_jis` to your list of dependencies in `mix.exs`:
|
||||
`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
|
||||
def deps do
|
||||
[
|
||||
{:shift_jis, "~> 0.1.0"}
|
||||
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"
|
||||
]
|
||||
end
|
||||
```
|
||||
|
||||
Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
|
||||
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
|
||||
be found at <https://hexdocs.pm/shift_jis>.
|
||||
## 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
|
||||
```
|
||||
|
|
|
@ -3,5 +3,6 @@ import 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"
|
||||
]
|
||||
|
|
|
@ -1,18 +1,14 @@
|
|||
defmodule ShiftJis do
|
||||
@moduledoc """
|
||||
Documentation for `ShiftJis`.
|
||||
# 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)
|
||||
"テスト"
|
||||
"""
|
||||
|
||||
@doc """
|
||||
Hello world.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> ShiftJis.hello()
|
||||
:world
|
||||
|
||||
"""
|
||||
def hello do
|
||||
:world
|
||||
end
|
||||
def encode(str), do: Codepagex.from_string!(str, @shift_jis)
|
||||
def decode(str), do: Codepagex.to_string!(str, @shift_jis)
|
||||
end
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
defmodule ShiftJisTest do
|
||||
use ExUnit.Case
|
||||
doctest ShiftJis
|
||||
|
||||
test "greets the world" do
|
||||
assert ShiftJis.hello() == :world
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue