김태우 님이 쓰신 글 :
: 다음과 같이 멀티 타입으로 해서 전송 하고있습니다..
:
: 하지만 euc-kr 이든 utf-8 의 형식의 서버이든 다 한글이 ?? 로 출력되고 있습니다.
:
: 미치겠습니다....
:
: 빨리 프로그램 만들어서 납품 해야되는데..ㅜㅜ
:
:
: TIdMultiPartFormDataStream* request;
: TStringStream* response;
: request = new TIdMultiPartFormDataStream;
: response = new TStringStream;
: request->AddFormField("userID",UserID);
: IdHTTP1->ReadTimeout = 20000; // 1000 1초?
: IdHTTP1->Post(ReceiverUrl, request, response);
: response->Position = 0;
:
:
: 테스트 페이지
http://connector.80port.net/Upload.html 이구요
:
: $departStation = $_POST[departStation];
: $makingCompany = $_POST[makingCompany];
: $makingAddr = $_POST[makingAddr];
: $makingName = $_POST[makingName];
: echo("$departStation $makingCompany $makingAddr $makingName");
:
: 이게 전부 입니다. 코딩이...
:
: 테스트 하기 위해서욤... 확이좀 해주세요!~
답변:
웹서버에서 Response 패킷을 보내줄 때... ISO-8859-1 로 보내주고 있기 때문 입니다. 프로그램에서 사용하는
코드페이지와 다르기 때문에 한글이 깨져서 보이는 거고요. 아래와 같이 TStringStream 클래스를 간접적으로 이용해서
출력하게 되면, 프로그램에서 사용하는 코드페이지에 맞게끔 변환이 될 겁니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String URL = "http://connector.80port.net";
TIdMultiPartFormDataStream *request = new TIdMultiPartFormDataStream();
TStringStream *response = new TStringStream();
request->AddFormField("userID", "UserID");
IdHTTP1->Post(URL, request, response);
Memo1->Lines->Add(response->DataString);
delete request;
delete response;
}
...