2012-08-09 11 views
5

はこのスニペット考えてみましょう:ErlangシェルでUTF-8を出力するには?

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

(「Paměť」は「メモリ」のためのチェコ語で、それはErlangのは、「印刷不可」です考えて2つの文字が含まれているので、私はそれを選んだ。。)スウェーデンで生まれたIIRCアーラン、ラテン文字1に文字が存在しない場合、それは印刷不可能であると仮定します。したがって、すべてがUTF-8である最新のLinuxボックスでシェルを実行していても、 "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> 
関連する問題