우선 몇가지 정보가 필요할 것 같습니다.
서버쪽(php)에서 리턴하는 html charset 정보가 필요하고
사용하시는 인디 버전을 알아야 합니다.
인디 같은 경우 core 쪽은 그럭저럭 쓸만한데 protocol 구현 유닛들은 소소한 버그들이 있습니다.
TIdHTTP 유닛도 검색을 해보면 인코딩 관련해서 버그들이 있는 것으로 보입니다.
우선 XE(인디 10.5.7) 에서는 GET/POST요청시 캐릭터셋 UTF8, EUC-KR일 경우 잘 변환해서 보여줍니다.
델파이 2009/2010 이시라면 아래의 링크가 도움이 될 것 같습니다.
http://blog.devquest.co.kr/imp/79
https://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&st=S&keyword=INDY&indx=412780&keyword1=INDY&page=1
우씨 님이 쓰신 글 :
: uses ...,IdURI;
: ....
:
: procedure TForm4.Button1Click(Sender: TObject);
: var
: murl , mv : string;
: IdHTTP: TIdHTTP;
:
: begin
: IdHTTP := TIdHTTP.Create(nil);
:
: murl :=' http://.../proc.php?m=테스트';
: TIdURI.URLEnCode(murl);
: mv := IdHTTP.Get(TIdURI.URLEnCode(murl));
: memo1.Lines.Add(mv);
: IdHTTP.Free;
: end;
: end;
:
: 알려주신대로 IdURI를 사용하여 해봤습니다.
: 그런데 메모에 기록되는것은 " ?Œ?ㅽŠ? " 입니다.
: IdURI를 사용하지 안을때는 " ??? " 입니다.
:
: 링크에 있는 URLEncodeComponent()를 사용도 해 봤는데 결과는 같습니다.
: 혹시나 해서 php소스에서
: <? echo "한글"; ?>
: 이렇게 해서 값을 받으면 "한글" 이라는 글자가 제대로 메모에 기록됩니다.
:
: 다시한번 부탁드립니다
:
|