AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi 7 WebModule Zeichensatz Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 7 WebModule Zeichensatz Problem

Ein Thema von mczero · begonnen am 9. Aug 2012 · letzter Beitrag vom 15. Aug 2012
Antwort Antwort
mczero

Registriert seit: 25. Nov 2010
13 Beiträge
 
Delphi 7 Architect
 
#1

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 14:04
Frage 1 habe ich selbst beantworten können, HTMLEncode() tut den Zweck

Zu Frage 2: Ja, Requests sind ja prinzipell immer UTF8, egal, bei AJAX Requests wandle ich nun auf Delphi Seite einfach um.

Danke!! Brett vorm Kopf gehabt
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 14:06
Zu Frage 2: Ja, Requests sind ja prinzipell immer UTF8, egal, bei AJAX Requests wandle ich nun auf Delphi Seite einfach um.
Naja, immer glaube ich nicht. Würde behaupten, dass es mit dem Zeichensatz zusammenhängt, mit dem die Website ausgeliefert wird. Eine andere Basis hat der Browser ja sonst nicht und genau damit arbeitet er dann.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
mczero

Registriert seit: 25. Nov 2010
13 Beiträge
 
Delphi 7 Architect
 
#3

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 14:14
Okay,

in irgendwelchen JQuery-Foren hatte ich das mal aufgeschnappt und so interpretiert, das UTF8 meist Standard ist...
gilt wahrscheinlich für XMLHTTPRequests. Egal, ich kann das ja in Delphi mit Request.ContentEncoding vorher abfragen...
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 15:15
Du kannst Dir die manuelle Codierung sparen - das macht Delphi automatisch. Entscheident ist dabei, vor der Zuweisung des Inhaltes die Eigenschaft ContentType auf UTF-8 zu setzen:
Delphi-Quellcode:
  Response.ContentType:='text/html; charset=UTF-8';
  Response.Content:=PageProducer.Content;
Damit werden auch deutsche Umlaute, Leerzeichen und Anführungsstriche korrekt übertragen.
Beispiel:
Delphi-Quellcode:
procedure TWebModule1.WebModule1TestAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.ContentType:='text/html; charset=UTF-8';
  Response.Content:='" & ß ä ö ü Ä Ö Ü € á à Ù Ú';
end;
Thomas Nitzschke
Google Maps mit Delphi

Geändert von Thom (10. Aug 2012 um 12:21 Uhr)
  Mit Zitat antworten Zitat
mczero

Registriert seit: 25. Nov 2010
13 Beiträge
 
Delphi 7 Architect
 
#5

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 15:45
Leider gibt es damit Probleme...

Die HTML-Seite für den PageProducer hat einen META-Tag:

Code:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Wenn ich nun den Response ContentType auf UTF8 ändere, ist der ganze Text auf der Seite kaputt,
und wenn ich den ContentType ebenfalls auf "text/html; charset=iso-8859-1" setze, werden wieder alle möglichen
Sonderzeichen rausgeschmissen (im Value des Input-Tags).

Geändert von mczero ( 9. Aug 2012 um 15:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 16:03
Versuch es doch mal mit Zz:='&#'+ord(Z)+';' Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#7

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 16:14
Ja, das funktioniert wirklich nur, wenn der (Teil-)String 'UTF-8' im ContentType enhalten ist. Das wird vor der Codierung von TWebModule getestet (das sieht man leider nur, wenn man sich den Quelltext näher anschaut).
Delphi schreibt diese Information dann in den Antwort-Header. Gelangt jetzt diese Information ein weiteres mal an den Browser, wertet dieser meistens das letzte Vorkommen aus - das wäre in Deinem Fall "iso-8859-1". Und das ist Latin-1 und nicht UTF-8, wodurch der Browser den Inhalt falsch interpretiert.

Versuch mal, die betreffende Zeile im PageProducer-Content auszukommentieren:
Code:
<!--meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"-->
Thomas Nitzschke
Google Maps mit Delphi

Geändert von Thom ( 9. Aug 2012 um 16:16 Uhr)
  Mit Zitat antworten Zitat
mczero

Registriert seit: 25. Nov 2010
13 Beiträge
 
Delphi 7 Architect
 
#8

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 15. Aug 2012, 10:33
Vielen Dank,

ich bin leider noch nicht dazu gekommen, es auszuprobieren! Ich melde mich
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz