Pete: Umlaute umwandeln

Ich lese eine String aus einer Textarea ein und muss die Umlaute umwandeln:

result = result.replace(/ü/,"ü");
 result = result.replace(/Ü/,"Ü");
 result = result.replace(/ä/,"ä");
 result = result.replace(/Ä/,"Ä");
 result = result.replace(/ü/,"ö");
 result = result.replace(/Ö/,"Ö");
 result = result.replace(/ß/,"ß");

Allerdings passiert hier nichts.

Auch

result.indexOf('ü')

liefert als Ergebnis -1, obwohl der Buchstabe vorhanden war.

Kennt jemand das Problem und / oder die Lösung?

Pete

  1. Hallo

    mach mal hier einen
    alert(result);

    result = result.replace(/ü/,"ü");
     result = result.replace(/Ü/,"Ü");

    ...
    Ansonsten koennte es noch so klappen
    result = result.replace(/\Ü/,"Ü");
    Glaub sollte aber kein Sonderzeichen sein

    Fehler werden auch keine angezeigt???
    Uli

    1. hallo

      alert(result);

      hatte ich bereits drin. Der Text ist da

      result = result.replace(/ü/,"ü");

      Ansonsten koennte es noch so klappen
      result = result.replace(/\Ü/,"Ü");

      Leider auch nicht.

      Glaub sollte aber kein Sonderzeichen sein

      Ich suche mal deswegen.

      Fehler werden auch keine angezeigt???

      Nein. Allerdings arbeite ich auch unter MacOSX mit IE, Firefox, Safari.

      Pete

    2. Ich habe jetzt folgendes gefunden und ausprobiert:

      http://www.javatop.de/scripte3/umlautkonverter.htm
      ist der Beweis das man die Umaute mittels JS umwandeln kann. Bei mir steht jetzt:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <title>Eingabe</title>
      <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

      <style type="text/css">
      body { margin-left:20px; margin-right:20px; margin-top:10px; margin-bottom:0px }
      </style>

      <script type="text/javascript">
      function add2Doc(headlineText) {
       for(i = 1; i < 8; i++) {
        if(i==1) { a="ä"; b="ä"; }
        if(i==2) { a="ö"; b="ö"; }
        if(i==3) { a="ü"; b="ü"; }
        if(i==4) { a="Ü"; b="&Uuml;"; }
        if(i==5) { a="Ä"; b="&Auml;"; }
        if(i==6) { a="Ö"; b="&Ouml;"; }
        if(i==7) { a="ß"; b="ß"; }
        while (headlineText.indexOf(a)>-1) {
         pos=headlineText.indexOf(a);
         headlineText=(headlineText.substring(0, pos)+b+
         headlineText.substring((pos + a.length), headlineText.length));
        }
       }
      }
      </script>
      </head>

      <body bgcolor="#ededed">
      <form action="">
      &Uuml;berschrift:<br>
      <textarea name="headline" cols="30" rows="5">test</textarea>
      <br><br><br>
      Eingaben <input type="button" name="fertig" value="&Uuml;bernehmen" onClick="add2Doc(this.form.headline.value)">
      </form>
      </body>
      </html>

      Es geht trotzdem nicht. Im Dokument steht dann "üöäß" statt "üöäß".

      Wo kann denn da noch der Fehler liegen?

      Pete

      1. Ich habe das ganze jetzt noch auf einem Win98-Rechner getestet. Hier geht der Code den ich gepostet habe, was ich nicht verstehe. Allerdings ist diese Datei in einem frame, aber das sollte ja wohl keinen Einfluss haben oder?

        Pete

      2. Hallo,

        Es geht trotzdem nicht. Im Dokument steht dann "üöäÃ" statt "üöäß".
        Wo kann denn da noch der Fehler liegen?

        In Deiner Textarea stehen die Zeichen nicht ISO-8859-1, sondern UTF-8 codiert.

        Vergleiche:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                "http://www.w3.org/TR/html4/strict.dtd">
        <html>
        <head>
        <title>UTF8</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        </head>
        <body>
        <h1>üöäÃ</h1>
        <div><script type="text/javascript">
        <!--
        var result = "üöäÃ"
        alert(result);
        alert("\u00fc");
        result=result.replace(/\u00fc/, "ü");
        result=result.replace(/\u00f6/, "ö");
        alert(result);
        document.writeln(result);
        //-->
        </script></div>
        </body>
        </html>

        http://www.unicode.org/charts/
        http://www.unicode.org/charts/PDF/U0080.pdf

        viele Grüße

        Axel

        1. Du sprichst hier einen interessanten Punkt an. Denn obwohl ich die Iso drin hatte, wurden die Umlaute äöüß nicht korrekt dargestellt. Ich habe nie verstanden warum. Kannst du mir das eventuell sagen? Oder ist das bei mir mal wieder ein typisches MacOSX-Problem

          Aber schon mal danke. Ich werde es heute Abend ausprobieren.

          Pete