Mirco: Unicode über document.getElementById darstellen

Hallo,

ich möchte Unicode (für japanische Zeichen) über ein JavaScript anzeigen (aus z.B. @ wird @) Über dokument.all gehts nur im IE (ist ja auch von dennen). Über document.getElementById schaff ich es nicht. Es wird @ angezeigt.

Hier der Testcode:
...
<script type="text/javascript">
function show() {
   document.all.CharA.innerHTML = "&#64;";
   document.getElementById("CharB").firstChild.data = "&#64;";
}
</script>
<p id="CharA">&nbsp;</p> // stellt @ dar
<p id="CharB">&nbsp;</p> // stellt &#64; dar
...

PS: Als Content-Type ist iso-8859-1 eingestellt was aber trotzdem functionieren muss.

LG Mirco

  1. Tag,

    document.getElementById("CharB").firstChild.data = "&#64;";

    probier mal
    "\x64";

    Grüße,
    Steffen.

    1. Tag,

      document.getElementById("CharB").firstChild.data = "&#64;";

      probier mal
      "\x64";

      bzw.
      alert("\u6464");

      Grüße,
      Steffen.

      1. bzw.
        alert("\u6464");

        Geht in beiden Browsern nicht. Ich würds auch nicht verstehen wenn ginge.

        1. Tag,

          bzw.
          alert("\u6464");

          Geht in beiden Browsern nicht. Ich würds auch nicht verstehen wenn ginge.

          (Geht nicht - gibt's nicht)

          Gibt bei mir ein Alert mit einem jap./chin. Zeichen aus. Die Seite ist codiert als "iso-latin-1" und "\u" steht für Unicode. Gefolgt von 4 hex Zeichen ergibt das ein Unicodezeichen.

          Grüße,
          Steffen.

        2. Ok so geht's jetzt. Du hast mich auf die richtige Spur gebracht Steffen.

          Statt den Dezimal- muss man den Hexadezimaln-Unicode angeben. Das geht in meinem Fall auch. Und statt '&#x40'; dann '\x40'.

          Danke ;)

    2. "\x64";

      wird im Firefox und IE zu 'd'.
      Das ist ja der Hex-Code für 'd' also eigentlich &#x64;

  2. Hallo,

    document.getElementById("CharB").firstChild.data = "&#64;";

    document.getElementById("CharB").firstChild.data = String.fromCharCode(64);

    MfG, Thomas

    1. document.getElementById("CharB").firstChild.data = String.fromCharCode(64);

      Perfekt! Danke Thomas.

    2. Hallo Thomas.

      document.getElementById("CharB").firstChild.data = "&#64;";

      document.getElementById("CharB").firstChild.data = String.fromCharCode(64);

      Und warum nicht einfach so:

      document.getElementById("CharB").firstChild.data = '摤';

      AFAIK ist JS die Kodierung der Datei egal. (Nur der JS-Code sollte möglichst UTF-8 sein, da obiges Zeichen sonst verloren geht.)

      Einen schönen Dienstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/ mathbr:w00t/
      1. Tag,

        Und warum nicht einfach so:

        document.getElementById("CharB").firstChild.data = '摤';

        AFAIK ist JS die Kodierung der Datei egal. (Nur der JS-Code sollte möglichst UTF-8 sein, da obiges Zeichen sonst verloren geht.)

        Nein.
        Das würde nur gehen, wenn die Seite auch in UTF-8 codiert ist.
        Sonst würde da jedes Byte als Zeichen interpretiert. In UTF-8 werden mehrere Bytes als ein Zeichen interpretiert. (o.s.ä.)
        Die Codierung macht sicher einen Unterschied.

        Grüße,
        Steffen.

      2. Hallo,

        Und warum nicht einfach so:

        document.getElementById("CharB").firstChild.data = '摤';

        Weil das offenbar nicht so einfach ist ...

        MfG, Thomas

        1. Hallo Thomas.

          Und warum nicht einfach so:

          document.getElementById("CharB").firstChild.data = '摤';

          Weil das offenbar nicht so einfach ist ...

          Ja, habe ich ja eingesehen.

          Ich bin es nur gewohnt, überall, wo möglich, UTF-8 zu nutzen, daher mache ich mir über so etwas normalerweise keine Gedanken mehr.

          Einen schönen Dienstag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          mathbr:del.icio.us/ mathbr:w00t/