2012-04-26 6 views
2

일부 서비스로 요청을 송수신하기 위해 erlang에서 표준 httpc 클라이언트를 사용하고 있습니다. 때로는 URL에 키릴 문자 경로가 있습니다. 키릴 문자를 URL로 인코딩하려면 어떻게해야합니까?얼랭 (Erlang)과 키릴 문자로 URL 인코딩하기

감사합니다.

답변

2
~/erl$erl 
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false] 

Eshell V5.8.5 (abort with ^G) 
1> Encoded = edoc_lib:escape_uri("абвгдеё"). 
"%c0%b0%c0%b1%c0%b2%c0%b3%c0%b4%c0%b5%c1%91" 
2> http_uri:decode(Encoded). 
[192,176,192,177,192,178,192,179,192,180,192,181,193,145] 

list_to_binary를 사용하여 이진 파일로 사용할 수 있습니다.

1

나는 edoc lib의 escape_uri에 약간의 문제가있었습니다.

https://stackoverflow.com/a/12648499/113112

https://gist.github.com/3796470

예 :

그래서 내가 UTF-8와 함께 작동 쓰는 일을했다.

Eshell V5.9.1 (abort with ^G) 

1> c(encode_uri_rfc3986). 
{ok,encode_uri_rfc3986} 

2> encode_uri_rfc3986:encode("абвгдеё"). 
"%d0%b0%d0%b1%d0%b2%d0%b3%d0%b4%d0%b5%d1%91" 

3> edoc_lib:escape_uri("абвгдеё"). 
"%c0%b0%c0%b1%c0%b2%c0%b3%c0%b4%c0%b5%c1%91" # output wrong: À°À±À²À³À´ÀµÁ‘ 
관련 문제