在Erlang R15中解析UTF-8

时间:2013-08-08 09:08:22

标签: unicode erlang

Erlang R15!

我有一个UTF-8编码的二进制文件。我需要将它解析为unicode字符串(列表)。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:5)

unicode lib会帮助你。

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

避免Erlang编码问题的最佳做法:

始终将utf8数据作为二进制文件和Unicode数据处理为Erlang列表

这种最佳实践将使您的生活更轻松。遵循此规则非常方便,因为它使得可用的Erlang模块的使用顺利进行。

以下是调试编码问题时使用的一些更好的shell工具:

强制Erlang shell打印字符(数字列表):

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

注意:这将使用shell编码打印,因此请确保您的shell具有要查看结果的编码。

强制Elrang shell打印数字:

io:format("~w~n", ["åäö"]).
[229,228,246]

答案 1 :(得分:1)

使用unicode翻译修饰符?

io:format("~ts", [Binary]).

这不会产生常规的Erlang字符串,但这似乎是你正在寻找的,不是吗?

答案 2 :(得分:1)

的unicode:characteres_to_list(二进制)

示例:

> X = unicode:characters_to_binary("á").
  <<"á"/utf8>>
> unicode:characters_to_list(X).
  "á"