アーランR15!
UTF-8 でエンコードされたバイナリがあります。Unicode 文字列 (リスト) に解析する必要があります。それを行う方法はありますか?
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]
unicode:characteres_to_list(バイナリ)。
例:
> X = unicode:characters_to_binary("á").
<<"á"/utf8>>
> unicode:characters_to_list(X).
"á"