Het draait allemaal om utf-8-codering. In Erlang een lijst met karakters, in jouw geval [240,159,152,130]
, zijn normaal gesproken niet gecodeerd, maar zijn de Unicode-codepunten. Toen u de gegevens ophaalde, kreeg u een binair bestand met utf-8-coderingsbytes van uw tekens. Waar deze codering precies plaatsvond, weet ik niet. Van de 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]
Het omgaan met unicode in erlang is vrij eenvoudig, karakters in lijsten zijn meestal de unicode-codepunten en worden zeer zelden gecodeerd, terwijl het opslaan in binaire bestanden betekent dat je ze op de een of andere manier moet coderen, omdat binaire bestanden slechts arrays van bytes zijn. De standaardcodering is utf-8. In de module unicode
er zijn functies voor het converteren tussen unicode-lijsten en binaire bestanden.