请考虑以下代码段:
Eshell V5.9.1 (abort with ^G)
1> A="Pamet".
"Pamet"
2> A1="Paměť".
[80,97,109,283,357]
(“Paměť”是捷克语中的“记忆”。我选择它是因为它包含两个Erlang认为“不可打印”的字符。)IIRC Erlang,起源于瑞典,假设一个角色不存在在拉丁文1中,它是不可打印的。因此,即使我在一个现代的Linux机器上运行shell,其中一切都是UTF-8,它输出一个整数列表而不是“Paměť”。
我的问题:如何将UTF-8字符串写入屏幕,使其显示为字符串,而不是整数列表?
答案 0 :(得分: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>