Tim: textdatei utf-8 oder sonstwas speichern

Hi,

wahrscheinlich eine Wald-vor-Bäumen-Frage, aber wissenswert.

Ich nutze häufig Textdateien um Inhalte zu speichern. bisher gab es auch nie Probleme, aber wieso nicht?

Ich meine ich kann da alles drin speichern, ob jetzt iso, utf-8 und von den zeichen her japanisch, kyrillisch, usw...

Beispiel:

$f = fopen('testseite.txt','w');fwrite($f,$_GET['q']);fclose($f);

酒に関する読物の他、酒

Das speichere ich und bekomme es auch bei einer Ausgabe perfekt wieder zu sehen.

Im Textfile steht aber:  Žð‚ÉŠÖ‚·‚é“Ç• (gekürzt weil nicht erlaubt hier)

+++ STOP +++++
+++ Na toll wie soll man posten wenn der Inhalt hier nicht rein darf. ++++

Das Formular hier sagt:
Sie haben ein Zeichen eingegeben, dass vom W3C als „discouraged character“ gekennzeichnet ist. Leider können solche Zeichen nicht verarbeitet werden. Zu der Gruppe von Zeichen gehören z. B. alle Steuerzeichen ausser dem Zeilenumbruch, dem Zeilenvorschub und dem Tabulator-Zeichen.

+++ Stop Ende ++++

Was bedeutet das jetzt?
[] => Ich brauche mir darüber keine Gedanken machen, alles wird immer ordnungsgemäss gespeichert, lediglich die Ansicht im jeweiligen Editor ist anders?

oder

[] => Ich muss sowieso anders vorgehen?

Tim

* Ich weiss natürlich das ich auch alles im base64 codieren könnte, aber meine Frage bezieht sich auf Klartext.

  1. Hi,

    Ich meine ich kann da alles drin speichern, ob jetzt iso, utf-8 und von den zeichen her japanisch, kyrillisch, usw...

    Warum nicht? Du öffnest eine Datei namens "testseite.txt", die kannst du genausogut "testseite.png" nennen. Du meinst, PHP kontrolliert nun den Inhalt, den du schreibst?

    Im Textfile steht aber:  Žð‚ÉŠÖ‚·‚é“Ç•

    Wie festgestellt? Plattengehäuse aufgeschraubt, mit Mikroskop geguckt?

    Was bedeutet das jetzt?
    [] => Ich brauche mir darüber keine Gedanken machen, alles wird immer ordnungsgemäss gespeichert, lediglich die Ansicht im jeweiligen Editor ist anders?

    Was heisst "ordnungsgemäß"? Natürlich nicht! Es ist _nicht_ ordnungsgemäß, wenn du eine Textdatei "testseite.png" nennst. Da ist kein kleiner Polizist, der irgendeine Ordnung überwacht.

    LG Kalle

    1. Hi,

      Ich meine ich kann da alles drin speichern, ob jetzt iso, utf-8 und von den zeichen her japanisch, kyrillisch, usw...

      Warum nicht? Du öffnest eine Datei namens "testseite.txt", die kannst du genausogut "testseite.png" nennen. Du meinst, PHP kontrolliert nun den Inhalt, den du schreibst?

      Worauf bezieht sich das "Warum nicht?" ist doch gar keine Frage da.
      Und nein, ich meine nicht PHP kontolliert den Inhalt.

      Im Textfile steht aber:  Žð‚ÉŠÖ‚·‚é“Ç•

      Wie festgestellt? Plattengehäuse aufgeschraubt, mit Mikroskop geguckt?

      Editor natürlich, was ja nichts heisst und genau darum meine Frage.

      Was bedeutet das jetzt?
      [] => Ich brauche mir darüber keine Gedanken machen, alles wird immer ordnungsgemäss gespeichert, lediglich die Ansicht im jeweiligen Editor ist anders?

      Was heisst "ordnungsgemäß"? Natürlich nicht! Es ist _nicht_ ordnungsgemäß, wenn du eine Textdatei "testseite.png" nennst. Da ist kein kleiner Polizist, der irgendeine Ordnung überwacht.

      Ordnungsgemäss bedeutet für mich, was rein kommt, geht nichts von verloren und kann auch jederzeit wieder raus. Mit Textdatei als .png abspeichern geht nicht ordnungsgemäss? hmm, bei mir schon! Warum sollte das  nicht so sein?

      Tim

      1. Hi,

        da haben wir aber ziemlich aneinander vorbeigeschrieben.

        Worauf bezieht sich das "Warum nicht?" ist doch gar keine Frage da.

        Deine Formulierung "ich meine ..." klingt so, als ob du einen Kommentar erwartest.

        Ordnungsgemäss bedeutet für mich, was rein kommt, geht nichts von verloren und kann auch jederzeit wieder raus.

        Ach so, _das_ ist schon Ordnung für dich. Okay.

        Mit Textdatei als .png abspeichern geht nicht ordnungsgemäss? hmm, bei mir schon! Warum sollte das  nicht so sein?

        Naja, jeder hat so seine eigene Ordnung ;-)

        Kalle

        1. Hi,

          Naja, jeder hat so seine eigene Ordnung ;-)

          du schreibst, hmm wie soll ich sagen, irgendwie philosophisch.

          Aber Ordnung hin oder her, ist meine Annahme richtig, das ich wirklich jedes noch so exotische Zeichen gefahrlos speichern kann ohne das mir irgendein ServerBetriebssystem, einen Strich durch die Rechnung macht?

          Tim

  2. Hallo,

    Ich nutze häufig Textdateien um Inhalte zu speichern.

    das ist durchaus legitim.

    Ich meine ich kann da alles drin speichern, ob jetzt iso, utf-8 und von den zeichen her japanisch, kyrillisch, usw...

    Richtig - solange du beim Schreiben dieselbe Codierung verwendest wie nachher beim Lesen.

    Im Textfile steht aber:  Žð‚ÉŠÖ‚·‚é“Ç•

    Das hört sich für mich so an, als ob du UTF-8-codierte Strings in die Datei schreibst, und beim Lesen auch wieder in UTF-8 erwartest. Also perfekt.
    Wenn du diese Datei natürlich zwischendurch mit einem Editor öffnest, der nicht weiß, dass der Inhalt UTF-8 sein soll (woher auch?), und ihn ersatzweise als ISO-8859-1 oder Windows-1252 interpretiert - was erwartest du dann?

    [] => Ich brauche mir darüber keine Gedanken machen, alles wird immer ordnungsgemäss gespeichert, lediglich die Ansicht im jeweiligen Editor ist anders?

    Solange der Editor nicht dieselbe Codierung wie dein Script verwendet, ja.

    * Ich weiss natürlich das ich auch alles im base64 codieren könnte

    Natürlich, aber das Problem bliebe dasselbe.

    So long,
     Martin

    --
    Ich stehe eigentlich gern früh auf.
    Außer morgens.