2012-08-09 65 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>