Hi Arno,

There were two DestCodePage parameter passover missing in
OverbyteIcsHttpSrv.

function HtmlPageProducerFromMemory
Line: 5068
            HandleTableRow(TagParams, P + J + 1, Q - P - J - 1,
                           RowDataGetter, UserData, DestStream,
DestCodePage);

and

Line: 5076
            StreamWriteStrA(DestStream, TagValue, DestCodePage);

Now it seems to work as expected.
I just tried UTF8
I have template file in UTF8 format and I need UTF8 encoded results.
With these two corrections Tag values are also converted.

It seems vtWideChar problem solved also.
I tested on Delphi XE, but had no time to test it on ansi compiler.

Thank you very much

Peter

2011.01.27. 18:22 keltezéssel, Arno Garrels írta:
> Arno Garrels wrote:
>> Busai Péter wrote:
>>> In HttpAppServer, URLHandler
>>>
>>> Call
>>> Client.AnswerPage(Flags,'','','template.html',nil,['SOMEKEY','A']);
>>>
>>> The value of SOMEKEY must be one character long.
>>>
>>> Result rendered in html page:
>>> Unsupported TVarRec.VType = vtWideChar
>> I uploaded changed versions of OverbyteIcsHttpSrv.pas and
>> OverbyteIcsHttpAppServer.pas here:
>> http://www.duodata.de/misc/delphi/ics/OverbyteIcsHttpSrv733.zip
>>
>> Fixed VarRecToString. AnswerPage and other functions take
>> optional codepage parameters now, you asked that some days back.
>> So it should now be possible to write i.e. UTF-8 encoded HTML
>> by passing CP_UTF8 in parameter DstCodePage, the default is
>> CP_ACP. Since it's not much tested please give it a trial and
>> let me know how it works for you before I upload this change to
>> the repository.
> Just in case you downloaded the wrong ZIP, VarRecToString should
> look like:
>
> function VarRecToString(V : TVarRec) : String;
> const
>     BooleanToString : array [Boolean] of String = ('FALSE', 'TRUE');
> begin
>     case V.VType of
>     vtInteger:        Result := _IntToStr(V.VInteger);
>     vtBoolean:        Result := BooleanToString[V.VBoolean];
>     vtChar:           Result := String(V.VChar);
>     vtExtended:       Result := _FloatToStr(V.VExtended^);
>     vtString:         Result := String(V.VString^);
>     vtPointer:        Result := 'Unsupported TVarRec.VType = vtPointer';
>     vtPChar:          Result := String(_StrPas(V.VPChar));
>     vtObject:         Result := 'Unsupported TVarRec.VType = vtObject';
>     vtClass:          Result := 'Unsupported TVarRec.VType = vtClass';
>     vtWideChar:       Result := String(V.VWideChar);
>     vtPWideChar:      Result := String(V.VPWideChar);
>     vtAnsiString:     Result := String(_StrPas(V.VPChar));
>     vtCurrency:       Result := 'Unsupported TVarRec.VType = vtCurrency';
>     vtVariant:        Result := 'Unsupported TVarRec.VType = vtVariant';
>     vtWideString:     Result := 'Unsupported TVarRec.VType = vtWideString';
>     vtInterface:      Result := 'Unsupported TVarRec.VType = vtInterface';
>     vtInt64:          Result := _IntToStr(V.VInt64^);
> {$IFDEF COMPILER12_UP}
>     vtUnicodeString:  Result := PWideChar(V.VUnicodeString);
> {$ENDIF}
>     else
>         Result := 'Unknown TVarRec.VType = "' + _IntToStr(Ord(V.VType)) + '" 
> ';
>     end;
>
> //OutputDebugString(PChar('VarRecToString ' + Result));
> end;
>
--
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