在 Erlang 中如何将字符串转换为二进制值?

发布于 2024-08-21 14:28:53 字数 157 浏览 4 评论 0原文

在 Erlang 中,如何将 string 转换为 binary 值?

String = "Hello"
%% should be
Binary = <<"Hello">>

In Erlang how do I convert a string to a binary value?

String = "Hello"
%% should be
Binary = <<"Hello">>

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

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

发布评论

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

评论(2

心奴独伤 2024-08-28 14:28:53

在 Erlang 中,字符串表示为整数列表。因此,您可以使用 list_to_binary (内置函数,又名 BIF)。这是我在 Erlang 控制台中运行的一个示例(以 erl 开头):

1> list_to_binary("hello world").
<<"hello world">>

In Erlang strings are represented as a list of integers. You can therefore use the list_to_binary (built-in-function, aka BIF). Here is an example I ran in the Erlang console (started with erl):

1> list_to_binary("hello world").
<<"hello world">>
不再见 2024-08-28 14:28:53

unicode (utf-8/16/32) 字符集需要更多位数来表示长度大于 1 字节的字符:
这就是为什么上面的调用对于任何字节值>都失败的原因。 255(一个字节可以容纳的信息限制,足以满足 IS0-8859/ASCII/Latin1 的要求)

要正确处理 unicode 字符,您需要使用

unicode:characters_to_binary() R1[(N>3 )]

相反,它可以处理 Latin1 和 unicode 编码。

华泰...

the unicode (utf-8/16/32) character set needs more number of bits to express characters that are greater than 1-byte in length:
this is why the above call failed for any byte value > 255 (the limit of information that a byte can hold, and which is sufficient for IS0-8859/ASCII/Latin1)

to correctly handle unicode characters you'd need to use

unicode:characters_to_binary() R1[(N>3)]

instead, which can handle both Latin1 AND unicode encoding.

HTH ...

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