Unicode Problem

eVolver

Angesehenes Mitglied
Hmm...weiss nicht mehr weiter.
Muss ein externes PHP Script ansteuern und Daten via Post
übergeben...
Das Script liegt beim Kunden auf dem Server und generiert ein
PDF. Der Kunde hat auch ein Form gemacht damit man testen
kann. Dieses Form habe ich 1:1 auf meinen Server hier im Geschäft
kopiert, einziger unterschied bei mir ist es ein aspx file (asp.net) und
beim Kunden ist es ein PHP File.

Was nun passiert:
Wenn ich das Form auf dem Server aufrufe und dort "Fässler" eingebe
erscheint im PDF auch Fässler
Wenn ich das Form auf meinem Server aufrufe und dort "Fässler" eingebe
erscheint im PDF Fässler.

Beide Forms zeigen auf das gleiche PHP-Script auf dem Server des Kunden!!!!

Wenn ich den Post sniffe sehe ich, dass die beiden unterschiedlich encoded
werden:

Vom Kundenserver aus: F%E4ssler
Von meinem Server aus: F%C3%A4ssler

WAS LÄUFT HIER FALSCH?
dry.gif




!!!Nachtrag!!!
Wenn ich aus meinem aspx file ein htm file mache geht's
huh.gif
 
Welcher Zeichensatz wird denn verwendet? UTF-8, ISO-8859-Irgendwas ? Ich denke der Unterscheid wird dadurch zustandekommen, dass bei HTML ein anderer Zeichensatz verwendet wird, bzw beim aspx ein falscher..
 
QUOTE Ich denke der Unterscheid wird dadurch zustandekommen, dass bei HTML ein anderer Zeichensatz verwendet wird, bzw beim aspx ein falscher..



Denke ich auch, nur, wo und wie kann ich das beeinflussen?
Ich hab schon versucht mit dem <meta>-Tag die Seite auf UTF-8 umzustellen...ohne Erfolg

LÖSUNG!

CODE
<globalization requestEncoding="ISO-8859-1" responseEncoding="ISO-8859-1" />


davor war

CODE
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />



Der Server des Kunden scheint kein utf-8 zu verstehen nur ISO
ph34r.gif
 
QUOTE (eVolver @ Fr 16.9.2005, 13:17)
QUOTE Ich denke der Unterscheid wird dadurch zustandekommen, dass bei HTML ein anderer Zeichensatz verwendet wird, bzw beim aspx ein falscher..



Denke ich auch, nur, wo und wie kann ich das beeinflussen?
Ich hab schon versucht mit dem <meta>-Tag die Seite auf UTF-8 umzustellen...ohne Erfolg

LÖSUNG!

CODE
<globalization requestEncoding="ISO-8859-1" responseEncoding="ISO-8859-1" />


davor war

CODE
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />



Der Server des Kunden scheint kein utf-8 zu verstehen nur ISO
ph34r.gif


Der versteht schon utf-8, aber unter utf-8 gibts keine Umlaute (als Einzelzeichen). Daher kannst du ihm das nicht böse nehmen, wenn er damit nix anfangen kann
wink.gif

ä anstelle eines ä müsste er eigentlich verstehen..
 
QUOTE (Alonso @ Fr 16.9.2005, 13:50)
QUOTE (eVolver @ Fr 16.9.2005, 13:17)
QUOTE Ich denke der Unterscheid wird dadurch zustandekommen, dass bei HTML ein anderer Zeichensatz verwendet wird, bzw beim aspx ein falscher..



Denke ich auch, nur, wo und wie kann ich das beeinflussen?
Ich hab schon versucht mit dem <meta>-Tag die Seite auf UTF-8 umzustellen...ohne Erfolg

LÖSUNG!

CODE
<globalization requestEncoding="ISO-8859-1" responseEncoding="ISO-8859-1" />


davor war

CODE
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />



Der Server des Kunden scheint kein utf-8 zu verstehen nur ISO
ph34r.gif


Der versteht schon utf-8, aber unter utf-8 gibts keine Umlaute (als Einzelzeichen). Daher kannst du ihm das nicht böse nehmen, wenn er damit nix anfangen kann
wink.gif

ä anstelle eines ä müsste er eigentlich verstehen..

Wenn er's als HTML ausgibt schön und recht...der macht aber ein PDF.
Und ich möchte nicht Fässler heissen
laugh.gif
 
QUOTE (eVolver @ Fr 16.9.2005, 14:54)[...]

Wenn er's als HTML ausgibt schön und recht...der macht aber ein PDF.
Und ich möchte nicht Fässler heissen 
laugh.gif


Kannst Du nicht einfach die Kodierungen ändern bzw. versuch es mal indem du über den Header die Zeichenkodierung angibst:


CODE Content-Type: text/html; charset=UTF-8


Mit dem Meta-Tags klappt das im Browser sowieso nicht immer, ich schreibe die Meta-Tag angaben auch nur noch für Suchmaschinen oder irgendwelche Scripte in den Quelltext hinein.

Ich habe leider keine große Ahnung von ASP, doch unter PHP kann ich die Zeichenkodierungen zu einer anderen konvertieren. PHP arbeitet standardgemäß auch mit ISO-8859-1.
Vielleicht hift der Beitrag zumindestens für eine kleine Anregung einer Problemlösung.



MfG Sascha Ahlers

PS: Ich mag keine Vollquotes, die verschwenden nur unnötig Platz.
 
QUOTE (eVolver @ Fr 16.9.2005, 14:17)
CODE
<globalization requestEncoding="ISO-8859-1" responseEncoding="ISO-8859-1" />


davor war

CODE
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />


Der Server des Kunden scheint kein utf-8 zu verstehen nur ISO

Diese Änderung im web.config mach ich auch, und zwar immer dann, wenn ein Web nicht nur HTML-Ausgaben machen soll. Also wenn Requests von einem anderen Server kommen oder wenn mein Web Requests an einen anderen Server schickt, oder wenn eben PDF's oder andere Formate erstellt werden sollen.

Was ich auch noch mache, besonders wenn Datum/Zeit-Werte verarbeitet werden sollen, ist die Culture setzen. So werden Eingaben im schweizer Format automatisch richtig erkannt und bei Ausgaben stimmen die Wochentage, Monatsnamen etc.:


CODE <globalization
requestEncoding="iso-8859-1"
responseEncoding="iso-8859-1"
culture="de-CH"
uiCulture="de-CH"
/>

Griessli
Irene
 
QUOTE (Irene @ Sa 17.9.2005, 6:35) Was ich auch noch mache, besonders wenn Datum/Zeit-Werte verarbeitet werden sollen, ist die Culture setzen. So werden Eingaben im schweizer Format automatisch richtig erkannt und bei Ausgaben stimmen die Wochentage, Monatsnamen etc.:


Cool, danke für den Tipp!
 
Zurück
Oben