Uwe Isenmann: IE Unicode

Hallo Zusammen,

Ich habe ein Problem mit dem Zeichensatz der Datei die ich abspeichern möchte. Ein ähnliches Problem wurde bereits in einem früheren Beitrag besprochen:
http://forum.de.selfhtml.org/archiv/2005/2/t101331/

Was ich tue ist:
1. Eine HTML Seite öffnen
 newWin = window.open();
  newWin.document.open();
2. Dann werden mit dem Writebefehl Tags und Text ins Dokument geschrieben
3. Dann möchte ich die Seite abspeichern "Speichern Unter".

  • als typ wähle ich "Web Page, HTML only"
  • als encoding habe ich mehrere Dinge ausprobiert
    a) Speichern unter Unicode
    --> Dann kann Firefox die CSS Referenzen nicht lösen
    b) den Charset mit newWin.document.charset auf "WesternEuropean(Windows)" ändern.
    Nachteile:
    --> keine Auswirkung beim speichern
    --> dies ist eine IE spezifische Funktion - würde bei FF also nicht funktionieren
    c) so würde es gehen:
  • Datei als Unicode speichern
  • Datei mit Notepad öffnen
  • Datei als UTF8 speichern
    --> Dann kann auch FF die CSS Informationen richtig lesen und demnach den Zeichensatz richtig lesen

Kann mir Tips geben, wie ich dieses Problem in JavaScript lösen kann (evtl. für IE FF und Opera)? Bzw. einen Link zu einer Seite wo das Problem beschrieben wird.

Viele Grüße
Uwe

  1. a) Speichern unter Unicode
    --> Dann kann Firefox die CSS Referenzen nicht lösen

    Wieso nicht?

    Kann mir Tips geben, wie ich dieses Problem in JavaScript lösen kann (evtl. für IE FF und Opera)? Bzw. einen Link zu einer Seite wo das Problem beschrieben wird.

    Ich kann nicht nachvollziehen, was genau das Problem ist.

    Struppi.

    1. Ok. Ich habe hier mal ein kleines Beipsiel geschrieben.

      Index.html

        
      <html><head><title>Test</title>  
        
      <script type="text/javascript">  
      function newPage () {  
         newWin = window.open();  
        newWin.document.open();  
        newWin.document.writeln("<html>");  
          newWin.document.writeln("<head>");  
          newWin.document.writeln("<title>Struktur drucken</title>");  
          newWin.document.writeln("<LINK REL='stylesheet' TYPE='text/css' HREF='file:///C:/Temp/css/main.css' TITLE='Styles'>");  
          newWin.document.writeln("</head>");  
          newWin.document.writeln("<body>  Dies ist ein Testdokument");  
          newWin.document.writeln("</body>");  
          newWin.document.writeln("</html>");  
          newWin.document.close();  
        
      }  
        
      </script>  
      </head><body>  
      <p><a href="javascript:newPage()">Seite generieren</a></p>  
      </body></html>  
      
      

      main.css:

        
      BODY  
      {  
          BACKGROUND-COLOR: lightgrey  
      }  
      
      

      Wenn ich nun das ganze ausführe und als unicode speicher kann der IE die CSS Informationen lesen. Firefox allerdings nicht.

      Wenn ich die Datei in Notepad öffne und als UTF-8 speichere kann der FF auch die CSS lesen.

      1. newWin.document.writeln("<LINK REL='stylesheet' TYPE='text/css' HREF='file:///C:/Temp/css/main.css' TITLE='Styles'>");

        Bei mir geht das, egal in welchem Zeichenformat.

        Struppi.

      2. Hallo,

        Wenn ich nun das ganze ausführe und als unicode speicher kann der IE die CSS Informationen lesen. Firefox allerdings nicht.

        was für ein "unicode" meinst du hier genau? Ich tippe mal auf UTF-16, das benutzt Windows nämlich intern gerne und nennt es oft einfach "Unicode". Auch der Windows-Notepad hat diese Unsitte.

        Mit welchem Content-Type und mit welcher Codierungsangabe lieferst du die CSS-Ressource dann aus? Der Firefox hält sich vermutlich an die Information im HTTP-Header (falls vorhanden), oder wählt UTF-8 oder ISO-8859-1 als Default. Und dann kommt "Schrott" in UTF-16.
        Der IE dagegen ist bekannt dafür, dass er auf MIME-Types und Angaben zur Codierung nicht allzuviel gibt und stattdessen lieber anhand des Inhalts versucht, die Codierung bzw. den Typ zu erraten. Auch UTF-16 erkennt er.

        Wenn ich die Datei in Notepad öffne und als UTF-8 speichere kann der FF auch die CSS lesen.

        Dann passen wohl alle Angaben wieder zusammen.

        So long,
         Martin

        --
        Wer schläft, sündigt nicht.
        Wer vorher sündigt, schläft besser.