jbfp: Fehler auf der Seite

Hallo,

habe das Problem, dass auf meiner Website online eine Buchstaben- und Zeichenkombination vor dem Erscheinen der Website erscheint, die nicht in der index-Datei steht, die ich von meinem Rechner aus auf den Server hochlade.
Diese Buchstaben- und Zeichenkombination ï>¿ verursacht kryptische Buchstaben- und Zeichenkombinationen in allen Texten auf meiner Seite. Wenn ich den Seitenquelltext online anzeigen lasse, erscheint die Zeichenkombination vor dem <!DOCTYPE html PUBLIC ...> , aber wenn ich die Datei auf meinen Rechner herunterlade, um mir den Inhalt anzusehen oder um ihn zu bearbeiten, ist die Zeichenkombination weg und nicht mehr entfernbar.

Könnt ihr mir helfen, wie ich diese Buchstaben- und Zeichenkombination wegbekomme?

vielen Dank,

jbfp

  1. Könnte an der Zeichenkodierung liegen. Das Problem hatte ich auch mal. Lag, glaube ich an der Byte Order Mark (BOM). Das Dokument wird als UTF-8 ausgewiesen (PHP-Header, Meta-Angabe) und wurde als UTF-8 mit BOM gespeichert.

    Lösung: Ich benutze Notepad++ und wähle dort unter "Format" -> "Kodiere als UTF-8 (ohne BOM)".

  2. Moin!

    Versuche mit wget -d http://Deine_Adresse herauszubekommen, was der Server wirklich sendet.

    http://www.gnu.org/software/wget/

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
  3. Hallo,
    hast Du korrekt hochgeladen - binary?
    Gruß
    Steffen

  4. habe das Problem, dass auf meiner Website online eine Buchstaben- und Zeichenkombination vor dem Erscheinen der Website erscheint, die nicht in der index-Datei steht, die ich von meinem Rechner aus auf den Server hochlade.
    Diese Buchstaben- und Zeichenkombination ï>¿

    Das ist die Unicode-Marke, auch BOM. Sie kennzeichnet eine Datei als Unicode-kodiert, in Deinem Fall utf-8, erscheint aber nur dann, wenn die Datei nicht mittels Unicode angezeigt wird, sondern mit einer anderen Zeichenkodierung. (Eine Zeichenkodierung legt grob gesagt fest, für welchen Bytewert welcher Buchstabe auf den Bildschirm gepinselt wird. Es gibt Kodierungen wie Sand am Meer, allen voran ASCII, die iso-8859-Familie und eben die eierlegende Wollmilchsau Unicode.)

    Dein Editor speichert die Marke in den Dateien, weil er mit Unicode arbeitet.

    verursacht kryptische Buchstaben- und Zeichenkombinationen in allen Texten

    Nein, Schuld an den kryptischen Kombinationen ist derjenige, der dem Browser nicht ordentlich mitteilt, in welcher Zeichenkodierung Du Deine Dateien abgespeichert hast. Im Moment meldet der Server dem Browser per HTTP, Deine Seiten seien iso-8859-1-kodiert, was schlicht falsch ist.

    Könnt ihr mir helfen, wie ich diese Buchstaben- und Zeichenkombination wegbekomme?

    Unicode ist grundsätzlich eine praktische Angelegenheit, insofern wäre es sinnvoll, die Dateien dabei zu belassen. Falls Dein Webserver ein Apache ist, kannst Du ihn mit

    AddCharset utf-8 .html

    oder

    AddDefaultCharset utf-8

    in der obersten .htaccess-Datei anweisen, dem Browser mitzuteilen, dass HTML-Seiten bzw. alle HTML- und Textdaten utf-8-kodiert sind. Variante 2 würde ich vorziehen, funktioniert aber eventuell nicht, wenn der Server schon vom Betreiber mit AddCharset festgelegt wurde. In dem Fall kannst Du nur mit nochmaligen AddCharset wie in Variante 1 die vorige Einstellung ändern.

    1. habe das Problem, dass auf meiner Website online eine Buchstaben- und Zeichenkombination vor dem Erscheinen der Website erscheint, die nicht in der index-Datei steht, die ich von meinem Rechner aus auf den Server hochlade.
      Diese Buchstaben- und Zeichenkombination ï>¿

      Das ist die Unicode-Marke, auch BOM. Sie kennzeichnet eine Datei als Unicode-kodiert, in Deinem Fall utf-8, erscheint aber nur dann, wenn die Datei nicht mittels Unicode angezeigt wird, sondern mit einer anderen Zeichenkodierung. (Eine Zeichenkodierung legt grob gesagt fest, für welchen Bytewert welcher Buchstabe auf den Bildschirm gepinselt wird. Es gibt Kodierungen wie Sand am Meer, allen voran ASCII, die iso-8859-Familie und eben die eierlegende Wollmilchsau Unicode.)

      Dein Editor speichert die Marke in den Dateien, weil er mit Unicode arbeitet.

      verursacht kryptische Buchstaben- und Zeichenkombinationen in allen Texten

      Nein, Schuld an den kryptischen Kombinationen ist derjenige, der dem Browser nicht ordentlich mitteilt, in welcher Zeichenkodierung Du Deine Dateien abgespeichert hast. Im Moment meldet der Server dem Browser per HTTP, Deine Seiten seien iso-8859-1-kodiert, was schlicht falsch ist.

      Könnt ihr mir helfen, wie ich diese Buchstaben- und Zeichenkombination wegbekomme?

      Unicode ist grundsätzlich eine praktische Angelegenheit, insofern wäre es sinnvoll, die Dateien dabei zu belassen. Falls Dein Webserver ein Apache ist, kannst Du ihn mit

      AddCharset utf-8 .html

      oder

      AddDefaultCharset utf-8

      in der obersten .htaccess-Datei anweisen, dem Browser mitzuteilen, dass HTML-Seiten bzw. alle HTML- und Textdaten utf-8-kodiert sind. Variante 2 würde ich vorziehen, funktioniert aber eventuell nicht, wenn der Server schon vom Betreiber mit AddCharset festgelegt wurde. In dem Fall kannst Du nur mit nochmaligen AddCharset wie in Variante 1 die vorige Einstellung ändern.

      vielen dank für deine antwort. allerdings sehe ich immer noch wie ein schwein ins ohrwerk, denn mir sagen hier einige begriffe nicht viel bzw. ich kann mit ihnen nichts anfangen.

      im header steht bei meinen meta-tags u.a.:

      <meta http-equiv="content-type" content="text/html; charset=utf-8" />

      das müsste ich wohl so lassen, oder?

      und was ist jetzt mit dem AddDefaultCharset utf-8 ?

      ich habe in meinem Verzeichnis, dort wo ich die Dateien auf den Server hochlade, keine .htaccess-Datei ??? wie und wo sollte die stehen? und wo befindet die sich? was steht da drin? und wie schreibe ich das dort rein? (ich kann leider auch nicht so perfekt englisch und so habe ich etwas Probleme, die englischen Seiten zu verstehen)

      vielen dank für eure Geduld.

      jbfp

      1. die kryptischen Zeichen werden beim Mozilla Firefox angezeigt, aber nicht beim Enternet Explorer und die Probleme habe ich auch erst seit etwa einem viertel Jahr. vorher war das nicht.

        1. die kryptischen Zeichen werden beim Mozilla Firefox angezeigt, aber nicht beim Enternet Explorer

          Firefox hält sich an das, was der Server ihm mitteilt ("Server sagt text/html in iso-8859-1, also ist das so."). Der IE hat die Eigenart, erhaltene Daten zu untersuchen und eventuell anders darauf zu reagieren ("Server sagt zwar text/html in iso-8859-1, aber da sehe ich eine Unicode-Marke, dann nehmen wir mal lieber Unicode.").

          und die Probleme habe ich auch erst seit etwa einem viertel Jahr. vorher war das nicht.

          Liegt vermutlich daran, dass der Hoster seine Server umgestellt und dabei die besagte Standardzeichenkodierung geändert oder eingeführt hat.

          <meta http-equiv="content-type" content="text/html; charset=utf-8" />

          das müsste ich wohl so lassen, oder?

          Wie jbfp schon geschrieben hat, kannst Du das so lassen, musst aber nicht. Sie ist zwar vollkommen richtig, aber die per HTTP übermittelte Content-Type-Angabe überschreibt offensichtlich diese <meta>-Angabe, insofern ist sie erstmal wirkungslos.
          Schaden tut sie aber nicht und sie kann sich sogar als nützlich erweisen, denn wenn man Deine Seite(n) als Datei auf dem eigenen Rechner speichert, wird ja nicht per HTTP auf die Seite zugegriffen, womit dann auch die HTTP-Content-Type-Angabe fehlt. Hier springt die <meta>-Angabe als HTTP-Ersatz ein (daher auch "http-equiv", d.h. HTTP-Äquivalent).

          ich habe in meinem Verzeichnis, dort wo ich die Dateien auf den Server hochlade, keine .htaccess-Datei ???

          Selbst mit einem Texteditor anlegen, der Name muss .htaccess lauten, also mit Punkt beginnen.

          Falls Du per FTP hochlädst, kann es sein, dass die Datei nach dem Hochladen nicht in der Dateiliste erscheint, da Dateien, die mit einem Punkt beginnen, meist versteckt werden. Sie ist aber da und wird auch benutzt werden. Zur Anzeige in Deinem FTP-Programm müsste eine Einstellungsmöglichkeit vorgesehen sein, befrage die Anleitung oder FAQ des Programms dazu (falls Du irgendwo über "ls -l" o.ä. stolperst und das in "ls -la" ändern sollst, liegst Du richtig).

          wo sollte die stehen?

          Erstelle sie im obersten Web-Verzeichnis, also dort, wo auch Deine index.html o.ä. für die Startseite liegt. Eine .htaccess-Datei gilt immer für alle Dateien innerhalb und unterhalb des Verzeichnisses, in dem sie liegt.

          was steht da drin?

          Du kannst dort verschiedenste Einstellungen für den Apache-Webserver anlegen: Zum Beispiel Weiterleitungen, eigene Fehlerseiten und unter anderem eben auch, ob und was er als Zeichenkodierung an den Browser senden soll.

      2. Ein Link zum Thema:
        http://blog.antikoerperchen.de/beitrag/42/utf-8-und-die-entity.html

        im header steht bei meinen meta-tags u.a.:

        <meta http-equiv="content-type" content="text/html; charset=utf-8" />

        das müsste ich wohl so lassen, oder?

        Ja.

        und was ist jetzt mit dem AddDefaultCharset utf-8 ?

        ich habe in meinem Verzeichnis, dort wo ich die Dateien auf den Server hochlade, keine .htaccess-Datei ??? wie und wo sollte die stehen? und wo befindet die sich? was steht da drin? und wie schreibe ich das dort rein? (ich kann leider auch nicht so perfekt englisch und so habe ich etwas Probleme, die englischen Seiten zu verstehen)

        Wenn da keine ist, legst du eine an. Einfach einen Texteditor öffnen und

        AddCharset utf-8 .css .htm .html .xhtml

        hineinschreiben. Die Datei als ".htaccess" (Es handelt sich hierbei um die Dateiendung, einen Namen hat die Datei nicht.) abspeichern und ins oberste Verzeichnis deines Webspaces hochladen.

    2. Hello out there!

      Diese Buchstaben- und Zeichenkombination ï>¿

      @jbfp:
      http://www.w3.org/International/questions/qa-utf8-bom

      kennzeichnet eine Datei als Unicode-kodiert, in Deinem Fall utf-8

      @ork-ork:
      Aua! Unicode ist KEINE Zeichencodierung; UTF-8 ist eine.

      Unicode / UCS [ISO 10646] ist ein Zeichensatz; und zwar auch der JEDES HTML-Dokuments, unabhängig von dessen Codierung.

      Die Begriffe "Zeichencodierung" und "Zeichensatz" müssen sorgfältig auseinandergehalten werden; sonst gibt es Verständnisprobleme.

      See ya up the road,
      Gunnar

      --
      „Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)