Bela: Textdatei vom Mac einbinden, Sonderzeichenproblem

Guten Tag,

im Archiv nicht viel Hilfreiches gefunden, deswegen doch einmal mein erstes Hilfe-Ersuchen.

Über include sollen einfache, auf Macintosh von No-HTML-Mensch erstellte Textdateien eingebunden werden - hergestellt mit simplem Texteditor.

Das Problem sind die Sonderzeichen und der Zeilenumbruch, die nicht korrekt dargestellt werden.
Bei Text von PC ist alles ok.

Evtl. kann ja das Prob mit den Zeilenumbrüchen durch FTP-ASCII-Übertragung gelöst werden.
Aber wie kann ich (im Script) oder der Textverfasser die Sonderzeichen lesbar hinkriegen?

Vielen Dank für Eure Hilfe
Bela

  1. Hi,

    Das Problem sind die Sonderzeichen und der Zeilenumbruch, die nicht korrekt dargestellt werden.

    der Umbruch ist \r, statt bei Windows \r\n und bei Unixen \n. Wie kommen denn die Umlaute an, und wie versuchst Du, sie (die Daten) zu lesen?

    Cheatah

    --
    X-Will-Answer-Email: No
    1. Hallo,

      der Umbruch ist \r, statt bei Windows \r\n und bei Unixen \n. Wie kommen denn die Umlaute an, und wie versuchst Du, sie (die Daten) zu lesen?

      include war falsch.
      datei wird eingelesen, in $inhalt gespeichert.

      Die Zeilenumbrüche ersetze ich so, funzt aber nicht für Mac-Text:
      $inhalt = preg_replace("/(\015\012)|(\015)|(\012)/","<br>\n",$inhalt);

      Hier ein Beispiel vom Mac (ich hoffe, dass wird hier nicht zufällig über das Form korrigiert):
      Mein erster eigener Test
      Hier mchte ich doch wissen wie es wirklich funktioniert. Vielleicht ist es ja wirklich nicht so schwer. Jedenfalls mchte ich auch ein Wort mit "" drinhaben.
      Formatierungen mache ich spter.

      Dann einfach Ausgabe, mit allen unmaskierten Umlauten.
      Sollte aber eigtl. gehen, weil ja text/html; charset=iso-8859-1
      angegeben.

      gruss
      Bela

      1. Hi,

        datei wird eingelesen,

        wie passiert das?

        $inhalt = preg_replace("/(\015\012)|(\015)|(\012)/","<br>\n",$inhalt);

        Die RegExp ist gut, um nicht zu sagen ideal; nur die Klammern darin sind unnötig. Was bedeutet "funktioniert nicht"?

        Hier mchte ich doch wissen wie es wirklich funktioniert. Vielleicht ist es ja wirklich nicht so schwer. Jedenfalls mchte ich auch ein Wort mit "" drinhaben.

        Woher hast Du diese Ausgabe? Aus der Interpretation Deines Browsers (=> Quellcode!)?

        Sollte aber eigtl. gehen, weil ja text/html; charset=iso-8859-1
        angegeben.

        Was Du in der Antwort schreibst ist egal, wenn Du die Frage nicht richtig interpretierst.

        Cheatah

        --
        X-Will-Answer-Email: No
        1. Hi,

          datei wird eingelesen,
          wie passiert das?

          $dateiauf=fopen($datei,"r");
          $dateilaenge=filesize($datei);
          $inhalt=fread($dateiauf,$dateilaenge);
          fclose($dateiauf);

          $inhalt = preg_replace("/(\015\012)|(\015)|(\012)/","<br>\n",$inhalt);

          Die RegExp ist gut, um nicht zu sagen ideal; nur die Klammern darin sind unnötig.

          Die Klammern sind nur für meinen eigenen Durchblick :)

          »»Was bedeutet "funktioniert nicht"?

          Befehl wird ignoriert, wenn Textdatei auf Mac erstellt wurde.

          Hier mchte ich doch wissen wie es wirklich funktioniert. Vielleicht ist es ja wirklich nicht so schwer. Jedenfalls mchte ich auch ein Wort mit "" drinhaben.

          Woher hast Du diese Ausgabe? Aus der Interpretation Deines Browsers (=> Quellcode!)?

          Nein. File vom Server gezogen und den Beispieltext aus meinem Texteditor kopiert.
          Aber das Form hier hat ihn verändert.
          Die Umbrüche werden z.b. in Arachnophilia als "Quadrate" angezeigt und die Umlaute sehen aus wie tschechische Buchstaben, s mit Dach usw.

          Bela

          1. Hi,

            datei wird eingelesen,
            wie passiert das?
            $dateiauf=fopen($datei,"r");

            was steht in $datei (bzw. wie hast Du es ermittelt), was steht (wirklich!) in der zugehörigen Datei?

            $inhalt = preg_replace("/(\015\012)|(\015)|(\012)/","<br>\n",$inhalt);
            Die RegExp ist gut, um nicht zu sagen ideal; nur die Klammern darin sind unnötig.
            Die Klammern sind nur für meinen eigenen Durchblick :)

            Ich hab ja auch nicht gesagt, es sei falsch ;-)

            »»Was bedeutet "funktioniert nicht"?
            Befehl wird ignoriert, wenn Textdatei auf Mac erstellt wurde.

            Wie hast Du diese Kenntnis gewonnen?

            Die Umbrüche werden z.b. in Arachnophilia als "Quadrate" angezeigt und die Umlaute sehen aus wie tschechische Buchstaben, s mit Dach usw.

            Die "Quadrate" sind korrekt, der Editor interpretiert sie lediglich nicht richtig; die merkwürdigen Buchstaben liegen daran, dass eine andere Zeichentabelle jenseits des ASCII-Bereichs verwendet wird. Überprüfe die Zeichen mit einem Hex-Editor; und zwar nicht nur auf dem Server, sondern auch auf dem Mac, um eventuelle Unterschiede zu erkennen (würde mich zwar wundern, aber man weiß ja nie).

            Cheatah

            --
            X-Will-Answer-Email: No