Elixir不给予List_to_bin的响应?

发布于 2025-01-19 03:03:24 字数 256 浏览 0 评论 0原文

["257","7"]
|> Enum.map(&String.to_integer/1)
|> Enum.reject(fn x -> x == 0 end)
|> :binary.list_to_bin()

出现错误

需要二进制数据。如果我使用低于 255 的数据,它会给出响应,但在 255 之后没有得到任何响应。

["257","7"]
|> Enum.map(&String.to_integer/1)
|> Enum.reject(fn x -> x == 0 end)
|> :binary.list_to_bin()

Getting error

Need binary Data. If I am using under 255 data it’s giving responses but after 255 not getting any response.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

っ〆星空下的拥抱 2025-01-26 03:03:24

虽然其他答案是正确的,但最简单的方法可能是使用 list.to_string/1 ,期望Unicode Charlist:

iex> List.to_string([257, 7])
"ā\a"

:Binary期望字节列表(Integers < 256)。

While the other answers are correct, the easiest way here is probably to use List.to_string/1, which expects unicode charlists:

iex> List.to_string([257, 7])
"ā\a"

:binary expects a list of bytes (integers < 256).

兰花执着 2025-01-26 03:03:24

:erlang.list.list.list_to_binary/1 (对于哪个:binary.list_to_bin/1是一个别名)仅与ASCII一起使用。实现目标的最简单方法是使用 for/1 使用自定义的二进制累加器理解,明确将整数铸成&lt;&lt; _ :: :: utf8&gt;&gt;&gt;

iex|1> for char <- [257, 7], do: <<char :: utf8>>, into: <<>>
"ā\a"

:erlang.list_to_binary/1 (for which :binary.list_to_bin/1 is an alias) works with ASCII only. The easiest way to accomplish your goal would be to use for/1 comprehension with a custom binary accumulator, explicitly casting integers to <<_::utf8>>.

iex|1> for char <- [257, 7], do: <<char :: utf8>>, into: <<>>
"ā\a"
无法言说的痛 2025-01-26 03:03:24

Elixir 二进制文件是一串 ASCII 字符。因此,这些值必须为 <=255

iex> [32, 54] |> :binary.list_to_bin()
" 6"

An Elixir binary is a string of ASCII characters. The values therefore need to be <=255.

iex> [32, 54] |> :binary.list_to_bin()
" 6"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文