Chrisi: document.ID.value und umlaute ?

Hi,

ich setze mit Javascript den Wert eines input text Feldes neu, habe aber ein Problem mit Umlauten, die kommen immer nur als ? an.

Meine Methode:

this.setNewValue = function(id,val) {
   document.getElementById(id).value = val;
}

Der Aufruf:

onclick="Obj.setNewValue('ID','Beispiel für Selfhtml')"

Meine Metadaten:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Er setzt mir jetzt natürlich auch den Wert in das input Feld, aber die Umlaute werden immer als ? ausgeben ...

Kann mir jemand sagen woran es liegt ?

Danke und Grüße

Chrisi ...

  1. Hallo,

    Meine Metadaten:

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    Verwendest du HTML oder XHTML? Bei letzterem Fall, wird diese Angabe ignoriert, da dort nur die XML-Deklaration zählt.

    Er setzt mir jetzt natürlich auch den Wert in das input Feld, aber die Umlaute werden immer als ? ausgeben ...

    Das passiert, wenn das Zeichen nicht erkannt wird.

    Kann mir jemand sagen woran es liegt ?

    Entweder an dem, was ich oben beschrieben hatte, oder der Server schickt was anderes.

    Alternativ kannst du die Zeichen auch einfach maskieren (unicode).

    z.B.
    „\u00F6“ für „ö“

    oder

    „\u00DF“ für „ß“

    mfg. Daniel

    1. Hi,

      Verwendest du HTML oder XHTML? Bei letzterem Fall, wird diese Angabe ignoriert, da dort nur die XML-Deklaration zählt.

      XHTML, traff bei mir zu habe auf folgendes angepasst:

      <?xml version="1.1" encoding="ISO-8859-1"?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

      Bringt aber leider keine Änderung, das ganze passiert auch bei Umlauten die ich im HTML Code habe, jedoch schaut es da so aus:

      für  (für)

      Allerdings nur im Browser, wenn ich in den Quellcode schaue ist es ein ü ...

      Die Daten kommen aus einer MySQL DB, Charset für die Daten:

      latin_german_1_ci, ein SELECT CHARSET(spalte) sagt mir latin_1

      Einen Schritt weiter zurück stelle ich fest das die Daten in der DB auch so gespeichert wurden "für", schaue ich mir das ganze mit phpMyAdmin über Mozilla Firefox an passt es, im IE aber nicht.

      Also müssen die Daten wohl schon falsch in der DB stecken, wie kann ich denn sowas beheben ?

      Kann einfach beim öffnen der Verbindung zur MySQL DB den gewünschten Charset setzen und die Daten damit lesbar machen oder liege ich da falsch ?

      Danke und Grüsse,

      Chrisi

      1. Hallo,

        Verwendest du HTML oder XHTML? Bei letzterem Fall, wird diese Angabe ignoriert, da dort nur die XML-Deklaration zählt.

        XHTML, traff bei mir zu habe auf folgendes angepasst:

        <?xml version="1.1" encoding="ISO-8859-1"?>

        Gibt es denn überhaupt schon eine Version 1.1 von XML? Schreibe hier lieber 1.0.

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

        XHTML 1.1-Strict gibt es nicht. Außerdem solltest du XHTML 1.1 nur verwenden, wenn du besondere Gründe dazu hast. Ansonsten solltest du lieber noch XHTML 1.0-Strict verwenden.

        Bringt aber leider keine Änderung, das ganze passiert auch bei Umlauten die ich im HTML Code habe, jedoch schaut es da so aus:

        für  (für)

        Firefox müsste hier so eine scharze Raute mit einem weißen Fragezeichen anzeigen.
        Hier mal ein Beispiel was bei einer fehlenden Zeichenangabe passiert.

        Allerdings nur im Browser, wenn ich in den Quellcode schaue ist es ein ü ...

        Was passiert, wenn du mit Firefox in den Quelltext schaust?
        (view-source:http://deine_Webseite)

        Die Daten kommen aus einer MySQL DB, Charset für die Daten:

        latin_german_1_ci, ein SELECT CHARSET(spalte) sagt mir latin_1

        Einen Schritt weiter zurück stelle ich fest das die Daten in der DB auch so gespeichert wurden "für", schaue ich mir das ganze mit phpMyAdmin über Mozilla Firefox an passt es, im IE aber nicht.

        In wie fern?

        Also müssen die Daten wohl schon falsch in der DB stecken, wie kann ich denn sowas beheben ?
        Kann einfach beim öffnen der Verbindung zur MySQL DB den gewünschten Charset setzen und die Daten damit lesbar machen oder liege ich da falsch ?

        K.A. von mysql habe ich auch noch nicht so viel Ahnung :-(

        Analysiere das Problem und ändere den Themenbereich des Postings, falls es etwas mit mySQL zu tun hat.

        mfg. Daniel

        1. Hi,

          Was passiert, wenn du mit Firefox in den Quelltext schaust?
          (view-source:http://deine_Webseite)

          Dort sind die Umlaute ebenfalls lesbar, der Mozilla nutzt dort UTF-8 im Browser. Habe im IE mal auf UTF-8 umgestellt, dann werden die Umlaute auch korrekt dargestellt.

          Nehme ich allerdings genau den gleichen String und möchte Ihn mitteils JS als Value für das Inputfeld setzen dann ist es wieder ein ? ...

          Das ist absolut kein Problem für mich :-) Ich muss mal eine halbe Stunde Pause machen, evtl. habe ich irgendwas ganz dummes gemacht, was ich gerade nicht sehe ...

          Wenn da jemand noche einen Rat hat immer her damit ...

          Danke und Grüsse

          Chrisi ...

        2. Hallo Daniel.

          <?xml version="1.1" encoding="ISO-8859-1"?>

          Gibt es denn überhaupt schon eine Version 1.1 von XML?

          Ja, gibt es.

          Schreibe hier lieber 1.0.

          Ist anzuraten, ja.

          Bringt aber leider keine Änderung, das ganze passiert auch bei Umlauten die ich im HTML Code habe, jedoch schaut es da so aus:

          für  (für)

          Firefox müsste hier so eine scharze Raute mit einem weißen Fragezeichen anzeigen.

          Nein, dies passiert nur, wenn nicht-UTF-8-kodierte Daten als UTF-8 ausgewertet werden. (Also genau umgekehrt.)

          Einen schönen Samstag noch.

          Gruß, Mathias

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          debian/rules
    2. Hallo,

      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

      Verwendest du HTML oder XHTML? Bei letzterem Fall, wird diese Angabe ignoriert, da dort nur die XML-Deklaration zählt.

      Da es hier höchstwahrscheinlich sowieso um HTML-kompatibles XHTML geht, stimmt das nicht.

      Wenn ein XHTML-Dokument als text/html ausgeliefert wird, achten Browser auf die meta-Angabe und nicht auf die XML-Deklaration (außer Opera, wenn ich das recht in Erinnerung habe).

      Mathias

      --
      »No nations, no borders.«
      SELFHTML Weblog