Michael: + (SONDERZEICHEN) + (UNICODE)

Hi,

wer kann mir bitte helfen ?

Ist es möglich einfach sämtliche Zeichen eines Formulars in Unicode-Zeichen umzuwandeln, z. B. aus einem ä --> \u00FC ?

Danke
M.

  1. Hallo Michael,

    es ist beim besten Willen nicht verständlich, warum du diese Frage jetzt schon wieder neu postest, diesmal aber allgemeiner formuliert. Wenn du Nachfragen hast zu

    <?m=56187&t=10137> oder <?m=55974&t=10101>,

    dann poste die doch bitte dort. Die Hinweise auf die FAQ schenke ich mir jetzt, du hast ja offensichtlich keine Lust, sie zu lesen.

    File Griese,

    Stonie

  2. 'n Abend,

    wer kann mir bitte helfen ?

    niemand, solange Du dein Problem nicht vernünftig darlegst.

    Ich gehe mal davon aus, das es sich um das selbe Problem, wie aus
    dem gestrigen Thread handelt. Es wäre also eine gute Idee gewesen,
    den Thread fortzuführen.

    Ist es möglich einfach sämtliche Zeichen eines Formulars in Unicode-Zeichen umzuwandeln, z. B. aus einem ä --> \u00FC ?

    ich hatte dir vorgeschlagen, mal auszuführen, was du in der Folge
    mit den Daten aus dem Formular machen willst, da sich die Maskierung
    der Sonderzeichen danach richten sollte! Es ist natürlich möglich,
    die Daten nach Unicode umzuwandlen, wie das geschieht, liegt aber an
    der nachfolgenden Verarbeitung. Bsp:
    &#252;         --> HTML Unicode-Entitie!
    \u00FC         --> Unicode Maskierung in einem JS-String
    ü             --> Unicodemaskierung als UTF-8
    ...etc

    bye eddie
    PS. was gefiel dir an der Umwandlung, die ich vorgeschlagen hatte nicht?

    1. 'n Abend,

      PS. was gefiel dir an der Umwandlung, die ich vorgeschlagen hatte nicht?

      Mit deinem Vorschlag erhielt ich sowas wie &#252; -> Problem ist aber, dass diese Zeichencodes durch eine JavaScript-Funktion in der Form

      document.write('...'); geschrieben werden und da komischerweise nicht als richtiges Zeichen dargestellt werden sondern so erscheinen: &#252;

      Das ist u.a. der Grund dafür weshalb mir eine reine Unicode-Kodierung besser gefallen würde.

      Ist es möglich einfach sämtliche Zeichen eines Formulars in Unicode-Zeichen umzuwandeln, z. B. aus einem ä --> \u00FC ?

      ich hatte dir vorgeschlagen, mal auszuführen, was du in der Folge
      mit den Daten aus dem Formular machen willst, da sich die Maskierung
      der Sonderzeichen danach richten sollte! Es ist natürlich möglich,
      die Daten nach Unicode umzuwandlen, wie das geschieht, liegt aber an
      der nachfolgenden Verarbeitung. Bsp:
      &#252;         --> HTML Unicode-Entitie!
      \u00FC         --> Unicode Maskierung in einem JS-String
      ü             --> Unicodemaskierung als UTF-8
      ...etc

      Generell denke ich, dass die Form \u00FC etc. die besste - für mich - Lösung darstellt.

      Natürlich könnte man jetzt für alle erdenklichen Zeichen eine Funktion schreiben - aber das ist doch umständlich?

      Deshalb, wenn es eine etwas elegantere Funktion gäbe, wäre ich schon dankbar.

      Hinweise reichen mir natürlich auch - ich will niemanden drängen hier komplette Cut&Paste Lösungen zu bringen.

      Danke.
      M.

      1. Hoi,

        Generell denke ich, dass die Form \u00FC etc. die besste - für
        mich - Lösung darstellt.

        Das glaube ich nicht. Aber wie du willst...

        function encode_string(variable) {
          var ret = '';

        for(i=0;i<variable.length;i++) {
            if(variable.charCodeAt(i) > 128) {
              eval("var x="\u"+gen_charcode(variable.charCodeAt(i))+"";");
              ret += x;
            }
          }

        return ret;
        }

        function gen_charcode(x) {
          x = dx(x);
          var z = '';
          for(var i=4-x.length;i>0;i--) {
            z += '0';
          }

        z = z + x;
          return z;
        }

        function dx(d) {
          max = Math.pow(16,8);
          var z = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
          var x = "";
          var i = 1, v = d, r = 0;

        if(d > max) {
            return -1;
          }
          if(d < 0) {
            return -1;
          }

        while(v > 15) {
            v = Math.floor(v / 16); i++;
          }

        v = d;

        for(j=i;j>=1;j--) {
            x = x + z[Math.floor(v / Math.pow(16,j-1))];
            v = v - (Math.floor(v / Math.pow(16,j-1)) * Math.pow(16,j-1));
          }

        return x;
        }

        Gruesse,
         c.j.k

        1. Hi,

          vielen lieben Dank für die Hilfe !!!

          Michael