Problem mit Umlauten in Einstellungen

  • Hallo,


    ganz sicher war ich mir ja nicht, in welches Forum ich diese Frage am besten posten sollte – habe mich dann aber entschieden, dass Erfahrungen mit der Übersetzung wahrscheinlich am ehesten weiterhelfen.
    Ich habe bei meiner eigenen Extension (privateID) mit TB 2.0 RC1 unter Windows Vista (ob das auch bei anderen Windows Versionen so ist kann ich leider gerade nicht sagen) das Problem, das Umlaute in den Einstellungen nicht mehr richtig funktionieren: wird zum Speichern der Einstellungen und das Optionen Fenster (siehe Code unten) genutzt, dann werden die Umlaute anscheinend nicht richtig gespeichert: aus „Persönliches Adressbuch“ wird „Persönliches Adressbuch“.


    Wird die Einstellung gegenüber den Code

    Code
    1. gprefs = Components.classes["@mozilla.org/preferences-service;1"]
    2. .getService(Components.interfaces.nsIPrefBranch);
    3. gprefs.setCharPref("extensions.privateid.adrBook",adrBookToSet);


    gespeichert, dann erscheinen die Umlaute in prefs.js richtig und mit

    Code
    1. gPrefs.getCharPref("extensions.privateid.adrBook");


    kann man die Optionen auch richtig auslesen, allerdings können diese Optionen von Code des Optionen-Fensters nicht gelesen werden und erscheinen dort auch nicht.
    Kann mir jemand sagen, was ich ändern muss, damit auch Umlaute wieder richtig geschrieben und gelsen werden?



    Viele Grüße, Toby

  • Bitte erinnere mich so in 2 Wochen nochmal dieses Problem - momentan kann ich mich nicht darum kümmern, um für Dich zu testen.

    Gruß
    Thunder


    Keine Forenhilfe per Konversation! - Danke für Euer Engagement und Eure Geduld!

  • Ich habe jetzt mal Deine Erweiterung in Version 0.1.4.1 in Tb 1.5 installiert (2.0 geht ja wohl noch nicht?).


    Dein Optionen-Fenster (also das der Erweiterung) liest doch meine testweise eingegebenen Umlaut-E-Mail-Adressen wieder korrekt aus der prefs.js aus, so wie ich das sehe. Also wo liegt dann das Problem ;-)


    Mit dem momentanen Code werden die Adressen scheinbar ISO-kodiert gespeichert (nicht UTF-8 ).

    Gruß
    Thunder


    Keine Forenhilfe per Konversation! - Danke für Euer Engagement und Eure Geduld!

  • Hallo Thunder,


    in Tb 1.5 funktioniert es auch bei mir wunderbar, nur mit 2.0 nicht (daher habe ich die MaxVersion auch noch auf 1.5).
    Wie kann ich ändern, dass die Adressen in UTF-8 kodiert werden, vielleicht hilft ja das?


    Gruß, Toby

  • Schaut so aus als würde Tb 1.5 alles ISO-kodiert in prefs.js schreiben und auslesen, Tb 2.0 schreibt und liest UTF-8. Bei mir funktioniert die Erweiterung in Tb 2.0 auch einwandfrei. Ich vermute für Leute die Deine Erweiterung in 1.5 schon installiert hatten und dann auf 2.0 updaten, wird es Probleme geben?

    Gruß
    Thunder


    Keine Forenhilfe per Konversation! - Danke für Euer Engagement und Eure Geduld!

  • Als Workaround:


    1. Frage eine pref 'user_pref("privateID.lastAppVersion");' ab. Wenn die >= 2 ist, dann nutze die momentane Routine, um die Einstellungen zu lesen. Wenn die pref nicht existiert oder kleiner 2 ist, dann verwende einen anderen Code, der noch als ISO ausliest.


    2. Danach setze die oben genannte pref = user_pref("extensions.lastAppVersion"); da drin steht die Programm-Version, die man gerade verwendet.

    Gruß
    Thunder


    Keine Forenhilfe per Konversation! - Danke für Euer Engagement und Eure Geduld!

  • Hallo Thunder,


    danke für die Antwort. In dem Fall wird es aber eher an Windows Vista liegen - oder hast Du auch mit Vista getestet? Ich habe gerade ein neues Profil aufgesetzt und habe das gleiche Problem...


    Viele Grüße, Toby

  • Hi Toby,


    ich habe unter Win XP Pro SP-2 getestet. Eventuell kann ich nächste Woche mal unter Vista testen - werde es die nächsten Tage in einer VM installieren.


    p.s. - sorry, dass ich Deinen Beitrag nicht früher gesehen habe.

    Gruß
    Thunder


    Keine Forenhilfe per Konversation! - Danke für Euer Engagement und Eure Geduld!

  • Hallo,


    nur falls es nochmal jemanden interessieren sollte: ich habe das Problem jetzt so gelöst, dass ich kein prefwindow mehr nehme - das macht die Sache zwar etwas aufwändiger - aber dafür funktioniert es...


    Hier der Code:



    Gruß, Toby