2012-08-09 16 views
5

Considere la siguiente:¿Cómo se genera UTF-8 en el shell Erlang?

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

("Paměť" es la palabra checa para la "memoria" Lo elegí porque contiene dos caracteres que Erlang piensa que son "no imprimible"..) IIRC Erlang, habiéndose originado en Suecia , asume que si un personaje no existe en Latín 1, no es imprimible. Por lo tanto, a pesar de que estoy ejecutando el shell en una moderna caja de Linux donde todo es UTF-8, muestra una lista de enteros en lugar de "Paměť".

Mi pregunta: ¿cómo escribir una cadena UTF-8 en la pantalla para que aparezca como una cadena de caracteres, y no como una lista de números enteros?

Respuesta

12

Aquí te gustaría encontrar algunas explicaciones sobre lo que está pasando y cómo hacerlo: http://www.erlang.org/doc/apps/stdlib/unicode_usage.html

Básicamente, se puede comprobar que el uso de algo como esto:

1> lists:keyfind(encoding, 1, io:getopts()). 
{encoding, unicode} 
2> io:format("~ts~n",["Paměť"]). 
Paměť 
ok 
3> 
Cuestiones relacionadas