【问题标题】:Parse UTF-8 in Erlang R15在 Erlang R15 中解析 UTF-8
【发布时间】:2013-08-08 09:08:21
【问题描述】:

二郎 R15!

我有一个 UTF-8 编码的二进制文件。我需要将其解析为 unicode 字符串(列表)。有什么办法吗?

【问题讨论】:

  • unicode 库仍可用于 R15!

标签: unicode erlang


【解决方案1】:

unicode 库将为您提供帮助。

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

在 Erlang 中避免编码问题的最佳实践:

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

此最佳做法将使您的生活更轻松。遵循这条规则非常方便,因为它可以顺利地使用可用的 Erlang 模块来处理 unicode。

还有一些更好的 shell 工具可以在调试编码问题时使用:

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

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

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

强制 Elrang shell 打印数字:

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

【讨论】:

    【解决方案2】:

    通过使用 unicode 翻译修饰符?

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

    这不会产生一个常规的 Erlang 字符串,但这似乎是你所关心的,不是吗?

    【讨论】:

      【解决方案3】:

      unicode:characteres_to_list(二进制)。

      例子:

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

      【讨论】:

        猜你喜欢
        • 2012-11-07
        • 2015-07-22
        • 1970-01-01
        • 2015-12-10
        • 2018-02-07
        • 2016-05-11
        • 2013-07-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多