Delphi Indy IdHTTPServer(IdHTTPServer) で UTF-8 を返す
Indy の HTTP Server (TIdHttpServer)で、UTF-8 をレスポンスさせる
procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); var S: string; begin S := '<html><head></head><body>Hello World!ハローワールド!</body></html>'; // UTF-8 AResponseInfo.ContentStream := TStringStream.Create(S, TEncoding.UTF8); AResponseInfo.ContentType := 'text/html; charset=utf-8'; { // Shift-JIS AResponseInfo.ContentStream := TStringStream.Create(S, TEncoding.GetEncoding(932)); AResponseInfo.ContentType := 'text/html; charset=shift-jis'; } end;AResponseInfo.ResponseText へそのまま記述するとデフォルトエンコードで処理されてしまうので、ContentStream へ直接投入し、ContentType へ charset でエンコードを記載しておく
charset の記述がないと、ブラウザは正しくエンコードを判断してくれない
コメント