5

考虑这个片段:

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

(“Paměť”是捷克语中“记忆”的意思。我之所以选择它是因为它包含 Erlang 认为“不可打印”的两个字符。)IIRC Erlang,起源于瑞典,假设如果一个字符在拉丁语中不存在 1 ,它是不可打印的。因此,即使我在一个一切都是 UTF-8 的现代 Linux 机器上运行 shell,它也会输出一个整数列表而不是“Paměť”。

我的问题:如何将 UTF-8 字符串写入屏幕,使其显示为字符串,而不是整数列表?

4

1 回答 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> 
于 2012-08-09T15:50:42.260 回答