제가 델파이 프로그램(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);
==============================================================================================================
정확히 이해가 되지 않을것 같아 찍어본 값들은 첨부해서 올려 놨습니다.
제발 알려 주세요~~