Necesito ser capaz de utilizar binarios con caracteres cirílicos en ellos. Intenté simplemente escribir <<"абвгд">>
pero recibí un error de badarg.Erlang y binario con cirílico
¿Cómo puedo trabajar con cadenas cirílicas (o unicode) en Erlang?
Necesito ser capaz de utilizar binarios con caracteres cirílicos en ellos. Intenté simplemente escribir <<"абвгд">>
pero recibí un error de badarg.Erlang y binario con cirílico
¿Cómo puedo trabajar con cadenas cirílicas (o unicode) en Erlang?
Si desea ingresar la expresión anterior en erlang shell
, lea el manual del usuario del módulo unicode
. La función character_to_binary
y character_to_list
son funciones reversibles. Los siguientes son un ejemplo:
([email protected])37> io:getopts().
[{expand_fun,#Fun<group.0.33302583>},
{echo,true},
{binary,false},
{encoding,unicode}]
([email protected])40> A = unicode:characters_to_binary("上海").
<<228,184,138,230,181,183>>
([email protected])41> unicode:characters_to_list(A).
[19978,28023]
([email protected])45> io:format("~s~n",[ unicode:characters_to_list(A,utf8)]).
** exception error: bad argument
in function io:format/3
called as io:format(<0.30.0>,"~s~n",[[19978,28023]])
([email protected])46> io:format("~ts~n",[ unicode:characters_to_list(A,utf8)]).
上海
ok
Si desea utilizar unicode:characters_to_binary("上海").
directamente en el código fuente, que es un poco más compleja. Puedes probarlo primero para encontrar la diferencia.
El compilador de Erlang interpretará el código como texto con codificación ISO-8859-1, lo que le limita a caracteres latinos. Aunque es posible que pueda utilizar algunos caracteres ISO que pueden tener la misma representación de bytes que desea en Unicode, esta no es una buena idea.
Quiere asegurarse de que su editor lea y escriba ISO-8859-1, y desea evitar el uso de literales tanto como sea posible. Fuente estas cadenas de archivos.
Esto es de alguna ayuda: http://www.erlang.org/doc/apps/stdlib/unicode_usage.html – NPE