这都是关于utf-8编码的。在 Erlang 中,字符列表(根据您的情况)[240,159,152,130]
, 通常不进行编码,而是 unicode 代码点。当您检索数据时,您会得到一个包含字符的 utf-8 编码字节的二进制文件。我不知道这种编码到底发生在哪里。从 erlang shell 中:
10> Bin = <<195,176,194,159,194,152,194,130>>.
<<195,176,194,159,194,152,194,130>>
11> <<M/utf8,N/utf8,O/utf8,P/utf8,R/binary>> = Bin.
<<195,176,194,159,194,152,194,130>>
12> [M,N,O,P].
[240,159,152,130]
在erlang中处理unicode非常简单,列表中的字符通常是unicode代码点并且很少被编码,而将它们存储在二进制文件中意味着你必须以某种方式对它们进行编码,因为二进制文件只是字节数组。默认编码是utf-8。在模块中unicode
有一些函数可以在 unicode 列表和二进制文件之间进行转换。