Je to všechno o kódování utf-8. V Erlangu seznam znaků, ve vašem případě [240,159,152,130]
, nejsou normálně kódovány, ale jsou to body kódu unicode. Když jste načetli data, dostali jste binární soubor obsahující bajty kódování utf-8 vašich znaků. Kde přesně k tomuto kódování došlo, nevím. Z prostředí 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]
Manipulace s unicode v erlangu je docela jednoduchá, znaky v seznamech jsou obvykle body unicode kódu a jsou velmi zřídka zakódovány, zatímco jejich uložení v binárních souborech znamená, že je musíte nějakým způsobem zakódovat, protože binární soubory jsou pouze pole bajtů. Výchozí kódování je utf-8. V modulu unicode
existují funkce pro převod mezi seznamy unicode a binárními soubory.