얼랭으로 PostgreSQL에서 데이터를 가져 오려고합니다. 다음은 DB에서 데이터를 가져 오는 내 코드입니다. 그러나 나는 '상태'열에서 cyrrilic 데이터 있습니다. 이 부정한 데이터가 올바르게 가져 오지 않습니다. UserInfo = io_lib:format("~tp ~n",[UserInfoQuery]),
을 사용해 보았지만 앱이 작동하지 않아 작동하지 않는 것 같습니다.PostgreSQL에서 유니 코드 데이터 가져 오기 Erlang
UserInfoQuery = odbc_queries:get_user_info(LServer,LUser),
UserInfo = io_lib:format("~p",[UserInfoQuery]),
?DEBUG("UserInfo: ~p",[UserInfo]),
StringForUserInfo = lists:flatten(UserInfo),
get_user_info(LServer, Id) ->
ejabberd_odbc:sql_query(
LServer,
[<<"select * from users "
"where email_hash='">>, Id, "';"]).
다음은 DB
에서 가져올 수있는 데이터입니다{selected,[<<"username">>,<<"password">>,<<"created_at">>,
<<"id">>,<<"email_hash">>,<<"status">>],
[{<<"admin">>,<<"admin">>,<<"2014-05-13 12:40:30.757433">>,
<<"1">>,<<"adminhash">>,
<<209,139,209,132,208,178,208,176,209,139,209,132,208,
178,208,176>>}]}
질문 :
- 어떻게 내가 열에서 데이터를 추출 할 수 있습니까? 예를 들어 '상태'열의 데이터 만 표시 할 수 있습니까?
- DB에서 유니 코드로 데이터를 추출하려면 어떻게해야합니까? DB에서 데이터를 가져와야합니까? io_lib : format ("~ tp ~ n")? 더 좋은 방법이 있습니까?
추가 질문 : 문자열을 사람이 읽을 수있는 형식으로 가져 오는 방법이 있습니까? RowUnicode의 StringForUserInfo = 'ыфваыфва'
?
{selected, _, [Row]} = UserInfoQuery,
RowUnicode = io_lib:format("~tp~n", [Row]),
?DEBUG("RowUnicode: ~p",[RowUnicode]),
StringForUserInfo = lists:flatten(RowUnicode),
오류 : io:format("~tp")
이 작동하지 않는 이유
bad argument in call to erlang:iolist_size([123,60,60,34,97,100,109,105,110,34,
62,62,44,60,60,34,97,100,109,105,110,34,62,62,44,60,60,34,50,...])
데이터를 사람이 읽을 수있는 UTF-8로 처리하고 Erlang 문자열에 넣을 수있는 방법이 있습니까? – max
이 데이터는 이미 UTF-8 형식이며 "사람이 읽을 수있는 UTF-8"을 이해하지 못합니다. 소스 코드에서 UTF-8 문자열을 입력 하시겠습니까? –
더 나은 설명을 위해 질문을 편집했습니다. – max