É tudo sobre codificação utf-8. Em Erlang uma lista de caracteres, no seu caso
[240,159,152,130]
, normalmente não são codificados, mas são os pontos de código unicode. Quando você recuperou os dados, obteve um binário contendo bytes de codificação utf-8 de seus caracteres. Exatamente onde essa codificação ocorreu eu não sei. Do shell erlang: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]
Manipular unicode em erlang é bastante simples, caracteres em listas geralmente são os pontos de código unicode e raramente são codificados, enquanto armazená-los em binários significa que você precisa codificá-los de alguma forma, pois os binários são apenas matrizes de bytes. A codificação padrão é utf-8. No módulo
unicode
existem funções para conversão entre listas unicode e binários.