5

このスニペットを検討してください。

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

(「Paměť」はチェコ語で「記憶」を意味します。Erlangが「印刷できない」と考える2つの文字が含まれているため、これを選択しました。)スウェーデンで生まれたIIRC Erlangは、ラテン語1に文字が存在しない場合を想定しています。 、印刷できません。したがって、すべてがUTF-8である最新のLinuxボックスでシェルを実行している場合でも、「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 に答える