2012-08-09 41 views
5

考慮這個片斷:如何在Erlang shell中輸出UTF-8?

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

(「Paměť」是「記憶」捷克詞我選擇了它,因爲它包含二郎認爲是兩個字符「不可打印」。)IIRC二郎,發源於瑞典,假定如果一個字符在拉丁文1中不存在,則它是不可打印的。因此,即使我在現代Linux機器上運行shell,其中一切都是UTF-8,它會輸出一個整數列表而不是「Paměť」。

我的問題:如何在屏幕上編寫一個UTF-8字符串,使其看起來像一串字符,而不是一列整數?

回答

12

在這裏,你會發現什麼回事一些解釋和如何做到這一點:http://www.erlang.org/doc/apps/stdlib/unicode_usage.html

基本上,你可以檢查,使用這樣的事情:

1> lists:keyfind(encoding, 1, io:getopts()). 
{encoding, unicode} 
2> io:format("~ts~n",["Paměť"]). 
Paměť 
ok 
3>