Problem mit Umlaute :

Hi an alle Besser-Wisser :smile:,

folgendes Problem: Ich hab ein neues xhtml Template inkl. CSS und wenn ich z.B ein Menü-Punkt „Reiseführer“ benenne, steht es dann zwar so geschrieben da ABER sobald ich die Seite online stelle liest man an der gleichen Stelle nur noch „Reisefhrer“ - Der Umlaut „ü“ ist also komplett weg…

Weiss jemand wie ich das Problem löse?

Moin moin,

Erstmal wäre es gut gewesen den Code zu Posten , denn noch können wir nicht wissen ob du auch den richtigen Zeichensatz mit sendest. Das steht aber meist im Kopfbereich der HTML seite .

Wenn ich es geschafft hab durch deine Augen zu gugen , kann ich Dir sagen wo der Fehler ist.

Tach!

Erstmal wäre es gut gewesen den Code zu Posten

Das würde nicht wirklich helfen, denn dann wissen wir nicht, mit welchem charset die Datei gespeichert wurde.

denn noch
können wir nicht wissen ob du auch den richtigen Zeichensatz
mit sendest.

Auch das wissen wir nicht, wenn wir den Code hier sehen. Das wissen wir nur, wenn wir eine Antwort vom Server bekommen.

Das steht aber meist im Kopfbereich der HTML
seite .

Nein, da steht, in welchem charset die HTML-Seite geschrieben sein soll.

Wenn ich es geschafft hab durch deine Augen zu gugen , kann
ich Dir sagen wo der Fehler ist.

Ich muss nicht durch fremde Augen gucken, um sagen zu können, dass das Charset an 3 Stellen vor kommt und an allen drei Stellen identisch sein muss, damit Sonderzeichen richtig angezeigt werden:

  1. In welchem Charset ist die HTML-Seite abgespeichert?
  2. Welches Charset hat die Seite lt. HTML-Header?
  3. Welches Charset liefert der Server aus?

Das 1. findet man im Editor, da kann man es idR auch verstellen.
Das zweite liest man im HTML-Code.
Das dritte kann z.B. Firefox bei „Seiteninformationen“ anzeigen. Da steht dann unter „Kodierung“ das Charset, das der Server ausliefert.

Wenn die nicht übereinstimmen, muss man dafür sorgen, dass sie es tun. Möglichkeiten gibt es da verschiedenste.

Liebe Grüße,
-Efchen

1 Like

Hallo,

Weiss jemand wie ich das Problem löse?

  1. Schaue in der Dokumentation deines Editors nach, in welcher Zeichenkodierung er Dateien abspeichert

  2. Bringe deinem Webserver bei, dem Content-Type Header ein entsprechenden charset= anzuhaengen. Auch hier hilft dir die Dokumentation weiter.

Gruesse,
Moritz

P.S. ich waere ja gern spezifischer, aber dazu haette ich auch mehr Informationen gebraucht (Welches Betriebssystem, mit welcher Locale? welcher Editor? Welcher Webserver? …)

Hi Leute,

also hier mehr Infos:

Da ich auf einer meiner Seiten ein Frame einfügen möchte werd ich wahrscheinlich wieder komplett die Internet-Seiten mit xhtml 1.0 Transitional als Doctype versehen - Da eine Seite mit Frame und dem Doctype 1.0 Strict meist nicht mehr valide ist…

Das Problem ist wie gesagt nur das mit den Umlauten :frowning:

Moin,

also hier mehr Infos:

Wie ich schon schrieb, reicht es in diesem Falle nicht, einen Code zu posten. Hier steht, dass Dein Dokument utf-8 sein soll.

Ist es auch in utf-8 abgespeichert?

Liefert Dein Server es auch als utf-8 aus?

Bitte überprüfe das! Wenn Du damit Schwierigkeiten hast, musst Du den Link zur Seite posten.

Da ich auf einer meiner Seiten ein Frame einfügen möchte

Freiwillig? Oder unter Folter erzwungen?

werd
ich wahrscheinlich wieder komplett die Internet-Seiten mit
xhtml 1.0 Transitional als Doctype versehen

komplett? Also auch alle Seiten, die keine Frames enthalten? Das ist Unsinn. Transitional ist für Übergangs-Websites. Oder eben für einzelne Seiten, die Elemente enthalten, die in Strict nicht mehr zugelassen sind - wenn sowas denn unbedingt sein muss.

Da eine Seite
mit Frame und dem Doctype 1.0 Strict meist nicht mehr valide
ist…

Meist?
Es gibt ab XHTML 1.0 Strict keine Frames mehr - was ja prinzipiell gut ist.

Das Problem ist wie gesagt nur das mit den Umlauten :frowning:

Das hat nichts mit dem Doctype oder mit Frames zu tun.

Liebe Grüße,
-Efchen

Hi,

wie sehe ich ob mein Server ein Dokument in utf-8 ausliefert? Wie kann ich das leicht überprüfen?

Das Frame auf bestimmten Seiten ist unter Folter erzwungen :wink:)

Moin,

das habe ich bereits geschrieben, wie das geht: /t/problem-mit-umlaute/6595499/3

Grüße,
-Efchen

eine php Lösung

<?php /*! check-utf8.php
\* use : check-utf8.php?fp=example/my/file.txt \*/ $filename = $\_GET['fp']; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); if (mb\_detect\_encoding($contents, 'UTF-8', true)) { echo "is UTF-8"; } else { echo "no UTF-8"; } ?\>

Hi,
bei der PHP-Lösung bekomme ich folgendes ausgespuckt:

Warning: fread(): supplied argument is not a valid stream resource in /home/www/100649/friseur-boeblingen.de/test.php on line 14

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/100649/friseur-boeblingen.de/test.php on line 15
is UTF-8

Hatte es jetzt auf einer meiner Internet-Seiten hochgeladen…

Hi nochmal,

aufjedenfall bin ich auf einen meiner Internet-Seiten und bin dann unter Firefox - rechte Maustaste - Seiteninformationen anzeigen und es kamen infos inkl. der Kodierung. Es stand ganz klar UTF-8 drinn… ich denke es leigt nicht am Server…

Was nun?

ich denke es leigt nicht am Server…
Was nun?

Die anderen zwei Punkte?

Ok probier mal dies hier

<?php /*! check-utf8.php
\* use : check-utf8.php?fp=subfolder/file.php \*/ /\*! header ausgeben für HTML mit UTF-8 \*/ header("Content-Type: text/html; charset=utf-8"); /\*! filename ergänzen aktueller pfad absolut \*/ $filename = "/var/www/100649/friseur-boeblingen.de/".$\_GET['fp']; /\*! datei öffnen \*/ if(!($handle = fopen($filename, 'rb'))) { echo "File failed to open"; } else { /\*! inhalt lesen \*/ $contents = fread($handle, filesize($filename)); /\*! datei schliessen \*/ fclose($handle); /\*! auf UTF-8 prüfen \*/ if (mb\_detect\_encoding($contents, 'UTF-8', true)) { /\*! wenn ja dann UTF-8 \*/ echo "is UTF-8"; } else { /\*! wenn nein dann kein UTF-8 \*/ echo "no UTF-8"; } } ?\> Pack das in dein Anfangsdirectory vom Server Beispiel Aufruf : meinOrdner/test/index.php check-utf8.php?fp=meinOrdner/test/index.php Im Beispiel siehst du auch wie man den UTF-8 header via PHP sendet. Hoffen wir mal das es nun klappt.

Moin,

ist das nicht eigentlich hinfällig mit seiner Aussage, der Server sendet UTF-8?

Grüße,
-Efchen

Moin,

ist das nicht eigentlich hinfällig mit seiner Aussage, der
Server sendet UTF-8?

Ich glaub nicht, der Server Sendet UTF-8 aber ob die Datei UTF-8 ist ist eine andere Frage . Schliesslich sieht man ja auch die Falschen Zeichen . Gerade wenn die eine Datei und die UTF-8 Ausgabe nicht übereinstimmen.

Grüße,
-Efchen

Und das mit dem header via php sender hilft wirklich , oder sagen wir in einigen Fällen macht es einen Unterschied.

Ja, aber wenn nur die Datei falsch gespeichert ist, dann reicht es, die nochmal - mit dem richtigen Programm - zu speichern, da braucht es dann doch nicht noch PHP dafür!?

Es gibt nur Editor, die das immer so speichern, wie sie es wollen, oder nicht richtig speichern. Oder UTF-8 mit BOM statt ohne speichern o.ä.