二进制和 Unicode 字符串

Binary and Unicode string

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

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

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

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

看起来这是一个明显的错误语法。我怎样才能使这项工作?提前致谢。

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

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

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

编辑: 当然,这很糟糕:"Hello, " 将是 UTF8!应该是

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

甚至

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