1. 2010. 11. 22. 13:24 IDE & SDK/VCL
indy VCL 에 포함된 IdHttpServer 에서 UTF-8 을 처리 하기 위한 이벤트 함수 ServerCommandGet.
성능과 관계되는 부분임으로 함수 로우 함수를 바로 이용.

이용시에 '한글 설정' 부분을 다른 내용으로 혹은 WideString 변수로 변경하여 사용 합니다.
주의 : 변수는 비어있으면 안됨.

Procedure TMainForm.IdHTTPServerCommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
Var
  Page: WideString;
  buffer: UTF8String;
Begin
  AResponseInfo.ContentStream := TMemoryStream.Create;
  Page := '한글 설정';
  SetLength(buffer, Length(Page)*3 );
  AResponseInfo.ContentStream.Write(PChar(#$EF#$BB#$BF+buffer)^, UnicodeToUtf8(PChar(buffer), Length(buffer)+1, PWideChar(Page), Length(Page))+3 );
  AResponseInfo.ContentLength := AResponseInfo.ContentStream.Size;
  AResponseInfo.WriteHeader;
  AResponseInfo.WriteContent;
  AResponseInfo.ContentStream.Free;
  AResponseInfo.ContentStream := nil;
End;
Posted by Nightly Luna
,
® © Tanny Tales
/ rss