それはすべてutf-8エンコーディングに関するものです。アーランでは、文字のリスト、あなたの場合は[240,159,152,130]
、通常はエンコードされませんが、Unicodeコードポイントです。データを取得すると、文字のutf-8エンコードバイトを含むバイナリが取得されました。このエンコーディングがどこで発生したのか正確にはわかりません。 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]
erlangでのUnicodeの処理は非常に簡単です。リスト内の文字は通常、Unicodeコードポイントであり、エンコードされることはめったにありませんが、バイナリに格納すると、バイナリはバイトの配列にすぎないため、何らかの方法でエンコードする必要があります。デフォルトのエンコーディングはutf-8です。モジュール内unicode
Unicodeリストとバイナリの間で変換するための関数があります。