如何在Erlang shell中输出UTF-8?

5

请看以下代码片段:

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

("Paměť"是捷克语中的“memory”。我选择它是因为它包含了Erlang认为是“不可打印”的两个字符。)如果我没记错,Erlang起源于瑞典,假设一个字符在Latin 1中不存在,则该字符是不可打印的。因此,即使我在现代Linux系统上运行shell,其中一切都是UTF-8编码,它仍然输出整数列表而不是“Paměť”字符串。
我的问题是:如何将UTF-8字符串写入屏幕,以便它显示为字符字符串而不是整数列表?
1个回答

13

这里有一些关于发生了什么以及如何操作的解释: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> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接