トップへ(mam-mam.net/)

Delphi2009でWEBBrokerを使ってUTF8で出力するには

検索:

「Delphi2009でWEBBrokerを使ってUTF8で出力するには」

Response.ContentStreamを使って処理を行えば可能だと思います。

回答

以下のソースコードが正しいかどうか自信がありませんが、
とりあえず、作成してWEBサーバーのcgi-binフォルダーに入れて動かすと、
きちんと動きました。

ソース

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var ms:TMemoryStream;
    st8:UTF8String;
    i:integer;
begin
  st8:='<html><head>';
  st8:= st8 + '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
  st8:= st8 + '</head>';
  st8:= st8 + '<body>ここに色々記述します。</body></html>';

  i:=Length(TBytes(st8));
  Response.ContentType:='text/html; charset=UTF-8';

  ms:=TMemoryStream.Create;
  try
    ms.Write(PByte(@st8[1])^,i);
    ms.Position:=0;
    Response.ContentStream:=ms;
    Response.SendResponse;
  finally
    ms.free;
  end;
end;