如何将二进制的其余部分转换为Elixir中的字符串?

时间:2017-04-12 21:03:43

标签: elixir

我有一个二进制文件,我使用模式匹配来解决第一个EJ:

<<code:: binary-size(2), _::binary-size(1), rest::binary>> = line

其余变量仍然是二进制格式,我想用字符串格式吗?

1 个答案:

答案 0 :(得分:0)

这是一个代表问题。事实证明,IEx控制台无法使用字符显示数据,并将其作为代码点打印出来。这通常发生在二进制包含例如\0 char。

看,让我们从头开始或你拥有的东西:

iex> <<57, 56, 52, 52, 49, 48, 68, 48, 66, 49, 83, 67, 73, 32, 32, 32, 32, 32, 32, 32, 49>>
#⇒ "984410D0B1SCI       1"

现在让我们把零字节放在那里:

iex> <<57, 0, 52>>
#⇒ <<57, 0, 52>>

可能会有更令人惊讶的表现故障:

iex> [7, 8, 9, 10]
#⇒ '\a\b\t\n'

现在IEx看到了char列表,​​并将其打印为char列表。 '\a'7'\b'为8等。