Umlaute auf meiner Website werden zu Sonderzeichen

PilotX

PilotX

Aktives Mitglied
Thread Starter
Dabei seit
29.11.2005
Beiträge
372
Reaktionspunkte
4
Hallo,

ich bin vor kurzem erst ein Mac-User geworden und hab daher eine Frage. Bisher habe ich meine Website mit UltraEdit unter Windows erstellt. Dort hatte ich folgenden content-type genutzt:

Code:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

Nun arbeite ich am Mac. Und leider hatte ich gleich beim ersten Bearbeiten meiner Website ein größeres Problem. Ich habe versucht, mit dem Programm Taco meine Website zu überarbeiten. Ging alles super. Aber nach dem hochladen wurden alle Umlaute als irgendwelche Sonderzeichen dargestellt. Lösen konnte ich das Problem indem ich nun folgenden content-type nutze:

Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Wie gesagt konnte ich das Problem dadurch auf weniger komplexen Websites lösen. Leider hat dies bei größeren Sachen (PHP-Website mit mehreren include-Teilen) nicht funktioniert. Dort sah es in jedem include-Teil anders aus.

Da ich absolut keine Ahnung habe woran das liegt, hoffe ich auf Antworten. Liegt es am Programm (Taco) oder am Hochladen? Ich habe keine Ahnung.

Vielen Dank schonmal.

Gruß
Daniel
 
Woran was liegt?
Der Zeichencode muß schon mit dem des aktuellen Charsets übereinstimmen, damit das Zeichen wie gedacht dargestellt wird.

Am besten, du verwendest nur named entities, dann ist es wurscht, welches charset letztendlich benutzt wird.
 
Es liegt daran, in welchem Zeichensatz Deine Seiten interpretiert werden. Das betrifft nicht nur die Darstellung der Seiten, sondern auch das LAden/Speichern durch den Editor. Offenbar hast Du einen eher wenig Webtauglichen Zeichensatz gewählt ( windows-1252 kenne ich nicht).
Wenn Du jetzt Deine PHP-Skripte einliest und dabei einen falschen Zeichensatz verwendest, wird der Text nat. verstümmelt und nach erneutem Speichern unbrauchbar!

Ich schlage vor, Du verwendest einen etwas flexibleren Editor der besser mit Zeichensätzen hantieren kann. SubEthaEdit hat eine gute Erkennung beim Laden der Dateien. Textwrangler ist da stoischer, Du kannst ihm aber beibringen alle Quelltexte mit Zeichensatz X zu laden ( hier windows-1252) und z.B. mit UTF-8 zu speichern. Dann hast Du wieder Ordnung im Chaos.
 
für umlaute:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>

wenn du es konkreter haben möchtest, schicke einen link auf eine "defekte" seite
 
Vielen Dank für die Hilfe. Ich werde mir die zwei erwähnten Programme mal unter die Lupe nehmen.

Eine Frage habe ich jedoch noch:

Wieso kann man eine reine Textdatei unter verschiedenen Zeichensätzen speichern? Wie merkt sich die Textdatei so etwas. Die hat doch gar keinen Header oder doch?
 
du könntest die umlaute aber auch richtig in html kodieren, dann hast du keine probleme mit zeichensätzen ;)
 
catvarlog schrieb:
wenn du es konkreter haben möchtest, schicke einen link auf eine "defekte" seite

das versteh ich grad nicht *stutz*

Wie meinst du das?
 
oneOeight schrieb:
du könntest die umlaute aber auch richtig in html kodieren, dann hast du keine probleme mit zeichensätzen ;)

Naja ist aber von Hand sehr mühsehlig. Außerdem lese ich sehr viel Text aus einer SQL-DB aus und die Texte liegen alle in normaler Form vor.
 
PilotX schrieb:
Wieso kann man eine reine Textdatei unter verschiedenen Zeichensätzen speichern?

Weil es schon seit Jahrzehnten verschiedene Zeichensätze gibt.

Wie merkt sich die Textdatei so etwas. Die hat doch gar keinen Header oder doch?

Gar nicht. Das muß der Client erkennen. Dazu dient ja die Charset Definition, die vom Server übertragen wird, oder im html file steht.

Um dem vorzubeugen:
Einfach named-entities verwenden und gut ist. Dann mußt du dich nicht damit rumschlagen.
Wenn du schonmal eine html seite gemacht hast, solltest du das eigentlich wissen.
Ansonsten kann ich dir die Seite http://de.selfhtml.org empfehlen.
 
PilotX schrieb:
Naja ist aber von Hand sehr mühsehlig.

Nö, da hat man sich in 5min dran gewöhnt.

Außerdem lese ich sehr viel Text aus einer SQL-DB aus und die Texte liegen alle in normaler Form vor.

Das kann man konvertieren, z.B. mit regulären Ausdrücken.
 
Incoming1983 schrieb:
Das kann man konvertieren, z.B. mit regulären Ausdrücken.

Da werd ich mal drüber nachdenken. Ich hoffe es ist kein zuuu großer Aufwand. Weil PHP-seitig bin ich keine Leuchte.
 
PilotX schrieb:
das versteh ich grad nicht *stutz*

Wie meinst du das?

im moment gibt es mehrere fehlerquellen...

- dein programm speichert im "falschen" zeichensatz ab
- die php-seite sendet den falschen satz im header (serverseitig)
- der server sendet einen falschen header
- die html/php-seite enthält den falschen satz im head-bereich der seite

usw....
 
Wenn die Seiten auf einem Apachen gehostet werden, kann man im Grunde auf die charset Angabe im Header verzichten und in einer .htaccess Datei für alle Seiten auf einen Schlag definieren.
Voraussetzung: alle Seiten sind tatsächlich mit diesem Charset abgespeichert (am besten ist iso-8859-1).
Vorteil (großer Vorteil IMHO): Du kannst die Texte aus den Datenbanken ungeparst ausliefern, wenn sie im richtigen Charset in der Datenbank stehen. Dann brauchst auch keine regulären Ausdrücke ;).

Achso : und dass Deine Seiten bisher für Macuser und andere nicht Dosenbenutzer unlesbar waren ist Dir schon klar, oder?
Nicht erst jetzt, wo Du einen Mac hast.
 
maceis schrieb:
Achso : und dass Deine Seiten bisher für Macuser und andere nicht Dosenbenutzer unlesbar waren ist Dir schon klar, oder?
Nicht erst jetzt, wo Du einen Mac hast.

nicht unbedingt. auch mit "windows-1252" werden die zeichen auf safari und firefox richtig dargestellt. windows-1252 und 8859-1 sind sehr ähnlich
 
Ach ja, richtig - ich hatte überlesen, dass erst die neuen Seiten nach dem Bearbeiten falsch dargestellt werden.
 
Zurück
Oben Unten