maxman: Textarea abspeichern. Fehler beim Zeichensatz?

Hallo.

Ich möchte gern eine Textarea, in der sich HTML-Code befindet, als Datei auf meinem Rechner per Knopfdruck abspeichern.

Hier mal ein Beispiel was in der Textarea steht:

<font size="3"><font face="Arial" color="#000000">test</font></font>

Die komplette Textarea sieht also komplett so aus:

<textarea name="abspeichern" id="abspeichern" style="border: 0; width: 300px; height: 300px;"><font size="3"><font face="Arial" color="#000000">test</font></font></textarea>

Der Link zum Speichern sieht wie folgt aus:

<input type="button" value="Text speichern" onclick="saveCode(this.form.abspeichern.value)">

und das dazugehörige Script sieht so aus:

<script type="text/javascript">
<!--//
  function saveCode(what){
   var win = window.open('', '_blank', 'top=10000');
       win.document.open('text/html', '_blank');
       win.document.charset="iso-8859-1";
       win.document.write(what);
       win.document.execCommand('SaveAs',true,'formCode.html');
       win.close();
   }
//-->
</script>

Nach Klick auf "Text speichern" öffnet sich ein Popup und eine Windows-Dialogbox, in der gefragt wird wo die Datei auf der Platte gespeichert werden soll. Vorgegeben ist hier als Dateityp HTML-Datei (*.htm;*.html) und als Sprache Westeuropäisch (ISO).

Der Quelltext in der Datei sieht nach dem Abspeichern jedoch im Editor wie folgt aus:

ÿþ< f o n t   s i z e = " 3 " > < f o n t   f a c e = " A r i a l "   c o l o r = " # 0 0 0 0 0 0 " > t e s t < / f o n t > < / f o n t >

Was muß ich ändern damit am Ende der HTML-Quellcode, der in der Textarea steht 1:1 abgespeichert wird?

  1. Hallo hans,

    bei mir kommt das raus:

    <font size="3"><font face="Arial" color="#000000">test</font></font>

    also alles perfekt. Vielleicht liegts an der Einstellung Deines Editors?

    Gruß, Frankx

    1. Dank für´s Testen, Frankx.

      So schaut die Datei bzw. der Inhalt bei mir aus wenn ich sie mit Homesite öffne oder Sie via PHP später zurück in die Textarea lade.

      Also wenn ich den Inhalt später zurück in die Textarea lade sieht das Ergebnis im Quelltext so aus:

      <textarea name="artikelbeschreibung" style="width: 595px" rows="24" cols="80"><font size="3"><font face="Arial" color="#000000" /></font>&yuml;&thorn;&lt; f o n t   s i z e = &quot; 3 &quot; &gt; &lt; f o n t   f a c e = &quot; A r i a l &quot;   c o l o r = &quot; # 0 0 0 0 0 0 &quot; &gt; t e s t &lt; / f o n t &gt; &lt; / f o n t &gt; </textarea>

      Im Online-Editor (TinyMCE) steht dann:

      ÿþtest

      Der Header der Datei sieht wie folgt aus:

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//DE"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
       <head>
        <title>Sammlershop24 HTMLgen</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

      Kann das fehlerhafte Öffnen damit in Verbindung stehen?

      1. Hallo,

        vielleicht hilft es Dir ja, das Problem einzugrenzen. Da es bei mir mit meinem Editor und Browser beim Abspeichern keine unerwünschten Whitespaces gibt, teste doch erstmal das, bzw. umgekehrt, lade mit deinem Verfahren eine selbst erstellte Textdatei (ohne das Javascript) in Deine Seite rein und schau, obs den selben Fehler gibt. Damit lässt sich vielleicht sagen, obs beim Abspeichern oder am wieder reinschreiben liegt.

        Bis später,

        Frankx

        1. Ich vermute Du hast Recht, daß das Speichern gar nicht den "Fehler" verursacht sondern eher beim Einladen die falsche Darstellung zustande kommt. Kann es daran liegen, daß die Textarea beim abspeichern eine andere ist als die beim Einladen? Beim Einladen ist die textarea nämlich mit einem Online-Editor (TinyMCE) gekoppelt. Kann es evtl. daran liegen, daß dieser Editor auf einen falschen Zeichencode bzw. auf eine falsche Sprache eingestellt ist? Irgendwie suche ich momentan die Nadel im Heuhaufen...

          1. Also wenn ich "sauberen" (Im HTML-Editor) erstellten Quelltext einlade wird alles wie erwünscht angezeigt in der TinyMCE Textarea und die HTML-Formatierung sofort übernommen. Also muß es anscheinend doch mit dem Abspeichern zu tun haben. Könnte es evtl. etwas mit dem Provider zu tun haben wo das Script läuft? Wenn ich die abgespeicherte Datei in Windows mittels Notepad öffne wird diese korrekt dargestellt, in meiner (englischen) Version von Homesite jedoch nicht. Bin langsam am verzweifeln. Suche den Fehler nun schon seit Tagen.

            1. Hallo,

              mit TinyMCE kenn ich mich nicht aus. Vielleicht änderst Du ja mal den Titel deines Threads (via Vorschau generieren). Felix Rieisterer arbeitet auch damit: https://forum.selfhtml.org/?t=122172&m=785648.

              Mir fällt da auch nischt mehr zu ein. Wenn ich im Editor die diversen Kodierungen durchklicke, nach abspeichern mittels Deines Scriptes, bekomme ich Deinen Effekt nicht hin. Theoretisch könnte es ja auch noch am abspeichernden Browser liegen, oder? Ich hatte jetzt IE6.

              Gut Glück,

              Frankx

              1. Lieber frankx,

                mit TinyMCE kenn ich mich nicht aus. [...] Felix Rieisterer arbeitet auch damit: https://forum.selfhtml.org/?t=122172&m=785648.

                stimmt! Mittlerweile kenne ich den TinyMCE besser, als ich es je hätte wollen. Aber wenn man einen eigenen Plugin dafür entwickeln muss, dann ist es unumgänglich, sich den Code wirklich reinzuziehen. Aber dabei habe ich ne ganze Menge über objektorientierte Programmierung gelernt, was ich nun in meinem neuen js_popup anwenden konnte.

                Ich weiß, dass mein Nachname nicht so leicht zu merken ist. Aber seit der Riester-Rente mache ich mir da neue Hoffnungen... *g*

                Liebe Grüße aus Ellwangen,

                Felix Riesterer.

                1. Hallo Felix,

                  was dem einen sein "i" ist dem anderen sein "a" (;-);

                  Gruß, Frankx

          2. Lieber maxman,

            Kann es daran liegen, daß die Textarea beim abspeichern eine andere ist als die beim Einladen? Beim Einladen ist die textarea nämlich mit einem Online-Editor (TinyMCE) gekoppelt.

            ich verstehe nicht genau, was dieses "EInalden" soll. Wenn Du den TinyMCE als Editor verwendest, kannst Du das Speichern nicht auch aus diesem heraus tun? Damit erübrigt sich dann das (wenn ich den Vorgang richtig verstanden habe) Umkopieren des Quelltextes.

            Dieses lustige Anfangszeichen vor dem <!DOCTYPE sieht mir sehr nach einer von Windoof missverstandenen UTF_8-kodierten Text/HTML-Datei aus! Dass dann zwischen den Buchstaben Leerzeichen angezeigt werden liegt ebenfalls an einer UTF8-zu-ISO-8859-1-Konvertierung.

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.