1

アーランR15!

UTF-8 でエンコードされたバイナリがあります。Unicode 文字列 (リスト) に解析する必要があります。それを行う方法はありますか?

4

3 に答える 3

6

Unicode lib が役に立ちます。

Bin = <<"Hello">>.
unicode:characters_to_list(Bin, utf8).

Erlang でのエンコーディングの問題を回避するためのベスト プラクティス:

常に utf8 データをバイナリとして扱い、Unicode データを Erlang リストとして扱います

このベスト プラクティスは、あなたの生活を楽にしてくれます。Unicode 処理のために利用可能な Erlang モジュールの使用がスムーズになるため、この規則に従うことは非常に便利です。

また、エンコーディングの問題をデバッグするときに使用できる便利なシェル ツールがいくつかあります。

Erlang シェルに強制的に文字 (数字のリスト) を出力させます:

io:put_chars([229,228,246]).
åäö

注: これはシェルのエンコーディングで出力されるため、結果を表示したいエンコーディングがシェルにあることを確認してください。

Elrang シェルに数字を表示させる:

io:format("~w~n", ["åäö"]).
[229,228,246]
于 2013-08-09T14:40:21.430 に答える
1

unicode:characteres_to_list(バイナリ)。

例:

> X = unicode:characters_to_binary("á").
  <<"á"/utf8>>
> unicode:characters_to_list(X).
  "á"
于 2015-05-07T02:20:36.320 に答える