二进制和Unicode字符串

时间:2018-10-20 09:25:47

标签: erlang

我有这样的代码来构造二进制字符串

[<<"Hello, ", Name/binary>>]

尝试将Name读取为Unicode。像这样

[<<"Hello, ", Name/utf16/binary>>]

看起来这是一个明显的错误语法。我该如何进行这项工作?预先感谢。

1 个答案:

答案 0 :(得分:1)

只需使用/binaryunicode模块中的函数即可在编码之间进行转换。

您的问题首先说您正在构造字符串,然后阅读它。如果要构建,可以编写

Utf16Name = unicode:characters_to_binary(Name, utf8, utf16),
[<<"Hello, ", Utf16Name/binary>>]

编辑: 当然,这很不好:“你好,”将是UTF8!应该是

unicode:characters_to_binary(<<"Hello, ", Name/binary>>, utf8, utf16)

甚至

unicode:characters_to_binary(["Hello, ", Name], utf8, utf16)