Zeichensatzerkennung im XUL browser-frame?

  • Hallo,

    bin jetzt schon eine Ewigkeit auf der Suche nach einer Möglichkeit, den Zeichensatz einer geladenen Website, die in einem browser-frame angezeigt wird, zu bestimmen und die Seite bei Bedarf mit dem korrekten Zeichensatz neu zu laden.

    Das Laden der Seite erfolgt so:

    Code
    document.getElementById("sbCaptureBrowser").loadURI(aURL, null, null);


    Möchte ich den Zeichensatz vor dem Laden manuell setzen, füge ich diese Zeilen davor ein:

    Code
    var objekt = document.commandDispatcher.focusedWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation);
    objekt.QueryInterface(Components.interfaces.nsIDocShell).QueryInterface(Components.interfaces.nsIDocCharset).charset = "Zeichensatz";


    Das ist zwar besser als gar nichts. Eleganter wäre es dennoch, wenn eine falsche Darstellung automatisch erkannt und korrigiert wird.

  • Zitat von haselnuss

    Eleganter wäre es dennoch, wenn eine falsche Darstellung automatisch erkannt und korrigiert wird.

    Eine schöne Idee, klappt aber nicht.

    Du würdest einen zu dem menschlichen Empfinden passenden Proofreader benötigen, nur den gibt es nicht.

  • Eine perfekte Lösung wird es wohl nicht geben. Aber zumindest scheint der Firefox Browser über eine Art Zeichensatzerkennung zu verfügen. Denn dort wird der korrekte Zeichensatz verwendet, ohne das ich eingreifen muss.

  • Nein, diese Rätselmaschine meine ich nicht, denn die ist aus. Mache ich Firefox auf, sehe ich ein leeres Fenster, da ich keine Startseite angegeben habe. Im Menü unter Ansicht -> Zeichenkodierung ist Unicode (UTF-8) markiert. Der Cache ist leer und ich füge aus der Zwischenablage von Windows die Adresse einer Problemseite ein.
    Seite wird geladen und korrekt dargestellt. Es wurde ohne mein Zutun auf ISO-8859-1 umgestellt.
    Lege ich in ein Fenster ein browser-frame an und lade dort die gleiche Seite, wird der Zeichensatz nicht umgestellt, sondern die Seite mit UTF-8 dargestellt.
    Im Seitenquelltext wird der zu verwendende Zeichensatz nicht angegeben. Also muss Firefox selbst irgendwie erkennen, dass für diese Seite UTF-8 nicht geeignet ist.