Erlang R15!
我有一个UTF-8编码的二进制文件。我需要将它解析为unicode字符串(列表)。有没有办法做到这一点?
答案 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).
"á"