Response := TStringStream.Create(EmptyStr, TEncoding.UTF8);
edit2.Text := Response.DataString;
Indy로 웹페이지를 읽을때 위와 같이 사용하였습니다.
모쪼록 해결되시길...
델초보 님이 쓰신 글 :
: 제가 델파이 프로그램(2010 or XE6)로 중국어(간체) 출력 프로그램을 만들고 있습니다.
:
: DB에 있는 내용을 1차적으로 asp 페이지(utf-8)로 불러와 최종 델파이 프로그램에서 출력 및 인쇄하는 방식입니다.
: 그런데, asp페이지서는 잘 보이는 중국어(간체)가 델파이로 showmessage로 값을 찍으면 글자가 깨져서 보이고,
: 값을 UTF8Decode(Response.DataString); 확인해보면 정상적으로 나오나, 몇몇 글자들이 깨져서 나옵니다.
:
: DB는 MSSQL을 이용하고, 데이타도 nvarchar로 등록이 되어 있습니다.
: ASP페이지도 UTF-8로 페이지가 만들어져 있고, 소스에도 아래와 같이 utf 관련 부분을 추가했습니다.
: <%@ CODEPAGE="65001" LANGUAGE="VBSCRIPT" %>
: <% session.codepage = "65001" %>
: <% response.charset = "utf-8" %>
:
: 그리고, 아래와 같은 방식으로 값을 출력해 봤는데, 정상적으로 값이 찍히지 않습니다.
: edit2.Text := UTF8Encode(Response.DataString);
: edit2.Text := UTF8Decode(Response.DataString);
: edit2.Text := UTF8toAnsi(Response.DataString);
:
:
: 델파이 2010 or XE6 버젼에서 중국어(간체)를 인식할수있는 함수나 방법이 있으면 알려주시면 감사하겠습니다.
:
:
: 지금 몇개월동안 이거만 잡고 있습니다. 제발 제발 도와 주세요~~~
:
: 고수님들~~~~~~~~~~
:
:
:
: 아래는 asp 페이지에서 값을 불러와 델파이로 갖고오는 로직입니다.
:
: procedure TForm1.student_buttonClick(Sender: TObject);
: var
:
:
:
: Source: Tstringlist;
: Response: TStringStream;
: strList,subfieldstring : TStringList;
: begin
: ....(생략)
:
: //ASP 주소값
:
: stquery := '
http://211.xxx.xxx.xxx:8100/student_search_2014.asp';
:
: Response := TStringStream.Create('');
: Source := Tstringlist.Create;
: Source.Add(stquery);
:
: IdHTTP.Post(stquery, Source, Response);
:
: //질문: 아래의 에디트에서 값을 찍으면 중국어(간자?)가 물음표(?)가 보여집니다.
: edit2.Text := PChar(Response.DataString);
: showmessage(edit2.text);
:
: strList := Tstringlist.Create; // 스프릿 데이터를 저장할 변수생성
: ExtractStrings(['+'], [' '], PChar(Response.DataString), strList);
:
: ==============================================================================================================
: 정확히 이해가 되지 않을것 같아 찍어본 값들은 첨부해서 올려 놨습니다.
: 제발 알려 주세요~~