2012-08-09 31 views
5

Hãy xem xét đoạn mã này:Làm thế nào để xuất UTF-8 trong vỏ Erlang?

Eshell V5.9.1 (abort with ^G) 
1> A="Pamet". 
"Pamet" 
2> A1="Paměť". 
[80,97,109,283,357] 

("Paměť" là từ Séc cho "bộ nhớ" Tôi đã chọn nó bởi vì nó có chứa hai ký tự Erlang nghĩ là "chưa in ra"..) IIRC Erlang, có nguồn gốc ở Thụy Điển , giả định rằng nếu một ký tự không tồn tại trong tiếng Latin 1, nó không thể in được. Do đó, mặc dù tôi đang chạy vỏ trên một hộp Linux hiện đại, nơi mọi thứ đều là UTF-8, nó xuất ra một danh sách các số nguyên thay vì "Paměť".

Câu hỏi của tôi: cách viết chuỗi UTF-8 vào màn hình để chuỗi xuất hiện dưới dạng chuỗi ký tự chứ không phải danh sách các số nguyên?

Trả lời

12

Dưới đây bạn sẽ tìm thấy một số giải thích về những gì đang xảy ra và làm thế nào để làm điều đó: http://www.erlang.org/doc/apps/stdlib/unicode_usage.html

Về cơ bản, bạn có thể kiểm tra rằng việc sử dụng một cái gì đó như thế này:

1> lists:keyfind(encoding, 1, io:getopts()). 
{encoding, unicode} 
2> io:format("~ts~n",["Paměť"]). 
Paměť 
ok 
3> 
Các vấn đề liên quan