Sonderzeichendarstellung in osCommerce

TSc

Legendäres Mitglied
Hi!

Meine Frau hat ein Problem mit ihrem Shop unter
http://www.dryadesgarten.com/

Die Sonderzeichen werden nicht korrekt dargestellt. Ich nehme an das es mit dem charset zu tun habe, da aber weder iso noch utf funktioniert wollte ich mal nachfragen ob jemand einen Tip für mich hat?

Gruß,
Tom
 
CODE <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


Das Charset ist schon richtig. In meinem Shop habe ich das gleiche Charset und keine Probleme mit den Umlauten.

Allerdings meint Firefox, wenn ich auf deinen Shop gehe, daß er in Unicode UTF-8 wäre.

Mein Shop hat allerdings ein anderes DocType. Nämlich:


CODE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Vermutlich ist der Head-Bereich bei euch nicht ganz korrekt. Ich sehe gerade das bei dir noch am Ende von Meta Content-Type das "> doppelt ist. Lösche es einmal und versuche, ob es dann richtig funktioniert.
 
Hm, die Site ist in ISO und die Datenbank ist in UTF8 codiert.
Da wirds wohl liegen, oder?

Aber jetzt bin ich zu müde, um 5:00 wartet mein Chef auf mich, ich werde hier morgen wieder nach schauen...
 
Hallo Tom,
was soll ich sagen: das Problem hatte ich mit meinen Seiten auch. Nachdem ich deinem Tipp gefolgt bin und bei netpublics mit zwei Webseiten Kunde bin, habe ich gleich mal deren Service getestet.
Problem geschildert und innerhalb von wenigen Stunden wurde auf den UTF8 Standard umgestellt.
Jetzt läuft es ohne Probleme. Alles wird sauber dargestellt.
Die Jungs machen da wirklich einen guten Job, muss ich hier nochmal lobend erwähnen.

Die Seite deiner Frau müsste doch eigentlich auch bei netpublics laufen, oder?

Gruß
re.fa
 
Das Problem dabei ist immer nicht die eine Einstellung an einer Stelle, sondern daß mehrere Einstellungen zusammen inkonsistent sind.

Der Http-Header sagt UTF-8 (Download.exe mit der -h - Option):

QUOTE E:\Temp>download http://www.dryadesgarten.com/ -h
Pragma: no-cache
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Type: text/html; charset=UTF-8
Date: Fri, 23 Jan 2009 14:49:25 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Set-Cookie: osCsid=aa2a975ed8c2c02517acf3d8c70bce4f; path=/tmp; domain=dryadesgarten.com
Server: Apache

Status: 200 OK


Das PHP-Script scheint aber als ASCII gespeichert zu sein und liefert effektiv nur einen 1-Byte-Zeichensatz aus: Mit dem Download.exe die Startseite einmal speichern. Dann zwei Möglichkeiten:

(1) Das Ergebnis mit Notepad aufrufen. Dann 'Speichern unter' wählen - da wird die aktuelle Datei als ASCII interpretiert.
(2) Das Ergebnis mit dem uralten edit.com aufrufen, das ist quasi ein Hex-Viewer. Da sieht man, daß kein BOM mitgeliefert wird (sonst sehen die ersten drei Zeichen kryptisch aus) und daß die Sonderzeichen nur als 1-Byte geliefert werden. Bei UTF-8 müßten aber zwei Byte geschickt werden - also weiß der Browser, nicht was er darstellen soll.

Mangels detaillierter PHP-Kenntnisse weiß ich nicht genau, weshalb das Script auf ASCII umschaltet. In einer Windows-Umgebung würde ich sagen: Speichere das als UTF-8. Aber wenn das 1000 Dateien sind...
laugh.gif


Der Html-Header


QUOTE <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


ist bei dieser Konstellation irrelevant: Es wird ja bloß ein Byte für einen Umlaut geschickt. Nur ist dieses Byte bei einer UTF-8-Codierung unverständlich. Es ist weder ASCII (< 128) noch ein korrektes erstes Byte gefolgt von einem zweiten. Also ist der Browser ratlos.

In .NET ist das eine zentrale Konfigurationseinstellung 'liefere UTF-8 aus' - damit hat sich das Problem.
 
Zurück
Oben