Đó là tất cả về mã hóa utf-8. Trong Erlang một danh sách các ký tự, trong trường hợp của bạn là [240,159,152,130]
, không được mã hóa thông thường nhưng là các điểm mã unicode. Khi bạn truy xuất dữ liệu, bạn nhận được một tệp nhị phân có chứa mã hóa utf-8 byte ký tự của bạn. Tôi không biết chính xác nơi mã hóa này xảy ra. Từ 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]
Xử lý unicode trong erlang khá đơn giản, các ký tự trong danh sách thường là các điểm mã unicode và rất hiếm khi được mã hóa, trong khi lưu trữ chúng trong các mã nhị phân có nghĩa là bạn phải mã hóa chúng theo một cách nào đó, vì các mã nhị phân chỉ là các mảng byte. Mã hóa mặc định là utf-8. Trong mô-đun unicode
có các chức năng để chuyển đổi giữa danh sách unicode và mã nhị phân.