키릴 문자가있는 바이너리를 사용할 수 있어야합니다. 나는 단지 <<"абвгд">>
을 쓰려고했지만 badarg 오류가 발생했습니다.키릴 문자로 얼랭 및 바이너리
Erlang에서 키릴 문자 (또는 유니 코드) 문자열로 어떻게 작업 할 수 있습니까?
키릴 문자가있는 바이너리를 사용할 수 있어야합니다. 나는 단지 <<"абвгд">>
을 쓰려고했지만 badarg 오류가 발생했습니다.키릴 문자로 얼랭 및 바이너리
Erlang에서 키릴 문자 (또는 유니 코드) 문자열로 어떻게 작업 할 수 있습니까?
erlang shell
에 위의 식을 입력하려면 unicode
모듈 사용자 설명서를 읽으십시오. 기능 character_to_binary
및 character_to_list
은 모두 되돌릴 수있는 기능입니다.
([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
소스 코드에 직접 unicode:characters_to_binary("上海").
를 사용하려면 조금 더 복잡하다 : 다음은 예입니다. 차이를 찾기 위해 먼저 시도해 볼 수 있습니다.
Erlang 컴파일러는 코드를 ISO-8859-1로 인코딩 된 텍스트로 해석하므로 라틴 문자로 제한됩니다. 유니 코드에서 원하는만큼의 바이트 표현을 가질 수있는 일부 ISO 문자를 사용할 수는 있지만 아주 좋은 생각은 아닙니다.
편집기에서 ISO-8859-1을 읽고 쓰고 가능한 한 리터럴을 사용하지 않으려는 경우. 파일에서이 문자열을 가져옵니다.
어떤 도움이 필요합니까? http://www.erlang.org/doc/apps/stdlib/unicode_usage.html – NPE