Chodzi o kodowanie UTF-8. W Erlangu lista znaków, w Twoim przypadku [240,159,152,130]
, zwykle nie są kodowane, ale są punktami kodowymi Unicode. Po pobraniu danych otrzymałeś plik binarny zawierający bajty twoich znaków z kodowaniem utf-8. Nie wiem dokładnie, gdzie doszło do tego kodowania. Z powłoki 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]
Obsługa Unicode w erlangu jest dość prosta, znaki na listach są zwykle punktami kodowymi Unicode i bardzo rzadko są kodowane, podczas gdy przechowywanie ich w plikach binarnych oznacza, że musisz je w jakiś sposób zakodować, ponieważ pliki binarne to tylko tablice bajtów. Domyślne kodowanie to UTF-8. W module unicode
istnieją funkcje do konwersji między listami Unicode a plikami binarnymi.