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