Umlaute werden nur auf Index angezeigt
Tobi_Wong
- html
0 Tobi_Wong0 Sven Rautenberg
1 hotti0 Tobi_Wong0 Sven Rautenberg0 hotti
hallo Community!
Ich versuch jetzt schon seit einer halben Stunde das Problem zu lösen:
Auf meiner Seite werden die Umlaute nicht komplett angezeigt, sondern teilweise durch die bekannten ASCII-Zeichen (ü) ersetzt.
In meiner index.php befindet sich im <head>
-Bereich natürlich die meta-Angabe mit der iso:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
Durch eine include-Funktion werden in der index.php die Inhalte der einzelnen "Bereiche" (Service, Downloads, etc.) geladen:
<?php
if (isset($_GET['section']) AND isset($contentdata[$_GET['section']])) {
include $contentdata[$_GET['section']];
} else {
include $contentdata['start'];
}
?>
Nun.... der Inhalt, der durch den Parameter 'start' in den Inhaltsbereich geladen wird - also die "Startseite" - zeigt die Umlaute korrekt an!
Wenn man allerdings einen Link ala
<a href="index.php?section=software">Software</a>
aufruft, der dann den Inhaltsbereich mit anderem Inhalt füllt, werden die Umlaute wieder nicht angezeigt!
Ich fang langsam an zu verzweifel - wuhaaa!
Ich hoffe jemand kann mir helfen =)
Tatsächlich handelt es sich nur um eine einzige php-Datei, in der die Umlaute nicht angezeigt werden.
Die Datei wird genauso eingebuden (included), wie die anderen auch.
Dabei handelt es sich um die datei imprint.php
(Impressum)
Hier mal der Auszug des $contentdata
-Arrays
$contentdata['imprint'] = 'content/system/imprint.php';
Ich bezweifel aber, dass der Felher an dem Array selber liegt.
Moin!
Tatsächlich handelt es sich nur um eine einzige php-Datei, in der die Umlaute nicht angezeigt werden.
Und diese Datei ist nicht in ISO-8859-1 abgespeichert, wie du in deiner Seite angibst, sondern in UTF-8. Wenn du das korrigierst, ist alles gut.
- Sven Rautenberg
Und diese Datei ist nicht in ISO-8859-1 abgespeichert, wie du in deiner Seite angibst, sondern in UTF-8. Wenn du das korrigierst, ist alles gut.
Alle dateien sind 8859-1-codiert, da sie 'nur' in die index.php eingebunden werden. (alles php-dateien!)
Alle Dateien greifen also auf die gleichen meta-Angaben zu.
Ich bin mitlerweile schon weiter gekommen mit meinem Problem - kann mir aber immernoch kein Reim daraus bilden.
Jede neu erstellte php-Datei zeigt keine Umlate an, unabhängig von Inhalt.
Kopiere ich eine alte php-datei und füge den gewünschten Inhalt ein und benenne diese Datei um geht es ! ... wtf...
Hello,
Alle dateien sind 8859-1-codiert, da sie 'nur' in die index.php eingebunden werden. (alles php-dateien!)
Du hast Sven vermutlich missverstanden.
Er meinte, dass Du bereits bei der Erstellung der Datei die falsche Codierung beim Abspeichern gewählt hast. Der Editor hat sie also als utf-8-Datei abgespeichert.
Wenn Du die Datei dann wiedergeben willst, muss sie natürlich auch in UTF-8 ausgeliefert werden.
Wenn Du sie dann aber als ISO-8859-1 auslieferst (per Behauptung des Servers im HTTP-Header oder ersatzweise im Meta-Element), dann werden die utf-8-codierten Zeichen so angezeigt, wie Du es geschildert hast.
Du musst also sichergehen, dass alle Dateien, die einfach eingebunden werden, auch dieselbe Codierung haben, die nachher bei der Ausgabe auch behauptet wird.
Lade die eine betroffene Datei nochmals in den Editor, dem Du _vorher_ gesagt hast, dass er den Bytestrom als UTF-8 interpretieren soll uns speichere sie dann anschließend nochmals ab, _nachdem_ Du den Editor angewiesen hast, dies mit der ISO-8859-1-Codierung zu tun.
Wenn Du dann die Dateigrößen vergleichst, müssten die sich unterscheiden. Die ISO-8859-1-Datei müsste etwas kleiner werden, wenn der Dreamweaver dann nicht wieder einen anderen Automatismus benutzt hat, nämlich die Umwandlung von Umlauten (allen Zeichen mit Codepoint > 127) in HTML-Entitäten. Das macht dieser Editor nämlich ggf. auch ungefragt...
Du leidest also unter dem "Automatismusfluch" moderner Software. Das erste, was ich immer mache vor der Verwendung solcher Programme, ist alle Automatismen ausschalten.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Du leidest also unter dem "Automatismusfluch" moderner Software. Das erste, was ich immer mache vor der Verwendung solcher Programme, ist alle Automatismen ausschalten.
Danke für diese Ausführliche Erklärung.
Dann habe ich das wohl wirklich falsch verstanden, was der Sven mir erzählt hat.
Dass es verscheidene Codierungen beim Abspeichern von Dateiene gibt, wusste ich nicht - mit sowas habe ich mich noch nicht auseinander gesetzt - Danke.
Ich werde mal schauen, wie man diese Automatisierung ggf. abschalten kann.
@@Tobi_Wong:
nuqneH
Dass es verscheidene Codierungen beim Abspeichern von Dateiene gibt, wusste ich nicht - mit sowas habe ich mich noch nicht auseinander gesetzt
Dann tu das. Zeichencodierung für Anfänger ist ein guter Ausgangspunkt.
Dann solltest du in Erwägung ziehen, zukünftig ausschließlich UTF-8 als Zeichencodierung zu verwenden.
Qapla'
hi,
Auf meiner Seite werden die Umlaute nicht komplett angezeigt, sondern teilweise durch die bekannten ASCII-Zeichen (ü) ersetzt.
Wie kommst Du auf ascii? Das Zeichen ü ist ein utf-8-codiertes ü
charset="iso-8859-1"
Genau das zeigt ein utf-8-codiertes ü als ü
Wenn Du ein ü sehen willst, solltest Du setzen
1. im HTTP-Header
Content-Type: text/html; charset=utf-8
2. in der HTML-Datei
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Hotti
Wenn Du ein ü sehen willst, solltest Du setzen
im HTTP-Header
Content-Type: text/html; charset=utf-8in der HTML-Datei
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Alles schon versucht - leider nichts geholfen.
Ich habe gerade herausgefunden, dass es wahrscheinlich ein Problem mit der Datei-Erstellen / Betriebssystem ist.
Ich habe mir eine php-Datei genommen, in der die Umlaute angezeigt werden und haben, dann den Inhalt vom Impressum reinkopiert und dann durch die alte imprint.php ersetzt.
Komischer Weise zeigt er die Umlaute jetzt an.
Allerdings verstehe ich nicht, wodran das liegt ?!?!
Ich persönlich erstelle meine php-Dateien IMMER auf gleiche Art und Weise:
Rechtsklick -> Neu -> Text-datei ----> unbenennen in datei.php
Warum er allerdings plötzlich ein Problem damit hat ist fragwürdig.
Moin!
Ich persönlich erstelle meine php-Dateien IMMER auf gleiche Art und Weise:
Rechtsklick -> Neu -> Text-datei ----> unbenennen in datei.php
Und mit welchem Editor? Wie speichert der die Dateien dann wieder ab? Könnte es sein, dass in deiner Textvorlage Zeichen enthalten waren, die es in ISO-8859-1 nicht gibt, und der Editor deshalb unbemerkt UTF-8 genommen hat. Oder hast du vielleicht unbemerkt was an den Speicheroptionen gedreht?
- Sven Rautenberg
Moin!
Ich persönlich erstelle meine php-Dateien IMMER auf gleiche Art und Weise:
Rechtsklick -> Neu -> Text-datei ----> unbenennen in datei.phpUnd mit welchem Editor? Wie speichert der die Dateien dann wieder ab? Könnte es sein, dass in deiner Textvorlage Zeichen enthalten waren, die es in ISO-8859-1 nicht gibt, und der Editor deshalb unbemerkt UTF-8 genommen hat. Oder hast du vielleicht unbemerkt was an den Speicheroptionen gedreht?
- Sven Rautenberg
Nachdem Die php-Datei erstellt wurde, wird sie mit'm Dreamweaver CS4 bearbeitet und gespeichert.
Es handel sich dabei NUR um die Umlaute ÜÄÖ - sonst sind keine anderen Zeichen enthalten.
Ich kann das Problem selbst mit einer Datei demonstrieren, in der nur ein Buchstabe drin steht: "Ä"
hi,
Komischer Weise zeigt er die Umlaute jetzt an.
Allerdings verstehe ich nicht, wodran das liegt ?!?!
Rate da nicht weiter rum und guck Dir den HTTP-Response-Header an.
Ich persönlich erstelle meine php-Dateien IMMER auf gleiche Art und Weise:
Rechtsklick -> Neu -> Text-datei ----> unbenennen in datei.php
Du solltest auch wissen, in welcher Codierung die Zeichen Deiner PHP- oder HTML-Dateien gespeichert werden wg. print oder echo "Das ist ein Text aus meiner PHP-Datü".
Warum er allerdings plötzlich ein Problem damit hat ist fragwürdig.
Da kann ich auch nur Raten ;-)
Horst Hellseher