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
Seite 1 von 2  1 2      
mczero

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

Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 12:52
Halli hallo,

unsere Webapplikation nutzt ein ISAPI-Modul, das aus Delphi 7 Webbroker-Code besteht.
Da das ganze doch schon recht staub ansetzt, wollte ich nun einfach mal ein wenig AJAX mit JQuery hier und
da in die Applikation einbringen. Es sollen Daten eines Input-Felds im Hintergrund an den Server gesendet werden.
Vorher jedoch befülle ich das Input-Feld in einem OnHTMLTag-Ereignis mit vorhandenen Daten (vereinfachter Code):

Delphi-Quellcode:
if TagString = 'InputEdit1then
  ReplaceText := '<input type="text" name="InputEdit1" id="InputEdit1" value="'+ String1 +'">';
Das Problem hier:
Wenn in String1 etwa ein paar Sonderzeichen sind, wie etwa bei "TestöÖäÄüÜ!"§$%&/()=ß",
so werden davon einige abgeschnitten, und auf der HTML-Seite bleibt nur noch ein Input-Feld mit dem
Value "TestöÖäÄüÜ!" übrig.

Ich dachte, das Delphi entsprechend dem Antwort-Header auch den Zeichensatz korrekt anpasst? Anscheinend nicht...
Wie bekomme ich das in den Griff? Was ist das Problem hier? Vielen Dank für alle Antworten
  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, 12:56
Kann es vielleicht an dem einen Anführungszeichen TestöÖäÄüÜ!"§$%&/()=ß liegen? Weil einfach so Abschneiden wäre alles andere als üblich, selbst bei Zeichensatzproblemen. Aber schlag mich nicht, wenn ich falsch liege...

[add]
Bin mir eigentlich sogar sehr sicher, dass es sogar daran liegt...

[add]
Schau mal hier. Ersetze mal das " durch &quot; und schaue dann obs klappt. Allgemein solltest du diese speziellen Zeichen eh entsprechend umwandeln.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k ( 9. Aug 2012 um 12:58 Uhr)
  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, 13:14
Tatsache, Du hast recht! Natürlich, man sollte den HTML-Zeichensatz verwenden.

Frage 1:
Hat Delphi Funktionen zum umwandeln von ANSI -> HTML-Zeichensatz? Ich habe nichts dazu gefunden...

Und Frage 2:

Was jetzt noch merkwürdig ist: wenn den Value, der nun korrekt ist, wieder per AJAX an eine Delphi WebModule-Action
schicke, muss ich den String diesmal per utf8toansi() umwandeln. Warum muss ich das auf einmal umwandeln? Wenn ich
sonst herkömmlich eine HTML-Form abgesendet habe und auf der Delphi Seite mit

String1 := Request.ContentFields.Values['InputEdit'];

ausgelesen habe, war der String auch ANSI, ohne das ich UTF8ToANSI() benutzen musste. Reine Verständnisfrage...

Ich sende folgendermaßen:
Code:
$.ajax({
  url: "/scripts/ISAPI.dll/Actionname",
  type: "POST",
  data : { parameter : "Strings mit Umlauten, Sonderzeichen etc."}
});

Geändert von mczero ( 9. Aug 2012 um 13:24 Uhr)
  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
 
#4

AW: Delphi 7 WebModule Zeichensatz Problem

  Alt 9. Aug 2012, 13:57
zu Frage 1: Kein Plan. Schreibe dir halt selbst schnell einen String-Replacer...

zu Frage 2: Wenn deine Website als UTF-8 ausgeliefert wird, dann wirst du vom Browser immer UTF-8 kodierten Text erhalten. Würde mich wundern, wenn es sonst anders wäre.
»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
 
#5

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
 
#6

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
 
#7

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
 
#8

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
 
#9

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
 
#10

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
Antwort Antwort
Seite 1 von 2  1 2      


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 16:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz