2

给定 shift-jis 编码的文本,我如何将其解码为 Elixir 的原生 UTF-8 编码,反之亦然?

4

1 回答 1

4

Codepagex库支持这一点。你只需要弄清楚它叫什么 SHIFT_JIS。

Codepagex 使用 unicode.org 提供的映射。shift-jis有一个,但它被标记为 OBSOLETE,因此在 Codepagex 中不可用。但是,Microsoft 的CP932也可用,它实际上是SHIFT_JIS,因此您可以使用它。

配置

它默认不启用,因此您需要在配置中启用(并mix deps.compile codepagex --force在必要时重新编译):

config :codepagex, :encodings, [
  "VENDORS/MICSFT/WINDOWS/CP932"
]

编码/解码

iex(1)> shift_jis = "VENDORS/MICSFT/WINDOWS/CP932"
"VENDORS/MICSFT/WINDOWS/CP932"
iex(2)> test = Codepagex.from_string!("テスト", shift_jis)
<<131, 101, 131, 88, 131, 103>>
iex(3)> Codepagex.to_string!(test, shift_jis)
"テスト&quot;

示例回购

我制作了一个示例 repo,您​​可以在其中看到它的实际效果。

于 2022-01-01T11:03:29.197 回答