Paul wrote:
 
> It's mostly ascii characters, but sometimes, the string contains a few
> unicode characters which can have different code pages for each
> character. Since the ClientCnx.AnswerString is an AnsiString anyway,
> I think the only choise is to convert them to UTF8.

That's correct, however not possible with current THttpConnection.
A small change should do the trick (untested):

        procedure   AnswerString(var   Flags    : THttpGetFlag;
                                 const Status   : String;
                                 const ContType : String;
                                 const Header   : String;
                                 const Body     : String
                              {$IFDEF COMPILER12_UP};
                                 CodePage       : Integer = CP_ACP
                              {$ENDIF});

procedure THttpConnection.AnswerString(
    var   Flags    : THttpGetFlag;
    const Status   : String;   { if empty, default to '200 OK'              }
    const ContType : String;   { if empty, default to 'text/html'           }
    const Header   : String;   { Do not use Content-Length nor Content-Type }
    const Body     : String    { Could be empty. No default.                }
    {$IFDEF COMPILER12_UP};
    CodePage       : Integer = CP_ACP
    {$ENDIF});
begin
    DocStream.Free;
    DocStream := TStringStream.Create(Body{$IFDEF COMPILER12_UP}, 
CodePage{$ENDIF});
    AnswerStream(Flags, Status, ContType, Header);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

Then call it with CodePage CP_UTF8 and ContType "Content-Type: text/html; 
charset=utf-8"

Does it work?

--
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to