Sipatshi: ö, ä, ü, €, usw. -> falsche darstellung!

Hallo zusammen,

wie kann ich Sonderzeichen ( ö, ä, ü, ?, usw. ) mit Javascipt richtig darstellen? Mir wird ein "?" eingezeicht, ansonsten %C4 oder ä

Auch hier im Forum, an einigen stellen werden die ü, ö, usw. als ? dargestellt :-( Wieso ist das so? Wie kann man sowas beheben?

Folgendes habe ich schon ausprobiert:

=====================================

normal: ö, ä, ü, ?,

======================================
Ä %C4
Ö %D6
Ü %DC
ä %E4
ö %F6
ü %FC
ß %DF
€ %u20AC
$ %24
% %25

ä ä
Ä Ä
ö ö
Ö Ö
ü ü
Ü Ü
ß ß
€ €

gruß Sipatshi

  1. wie kann ich Sonderzeichen ( ö, ä, ü, ?, usw. ) mit Javascipt richtig darstellen?

    In dem du den richitgen Zeichensatz verwendest. Das gibt es mehrere Stellen, wo du Fehler machen kannst. In deinem Editor muss der gleiche Zeichensatz eingestellt sein, in dem die Seite dann im Browser dargestellt wird.

    Struppi.

    1. Hallo Struppi,

      »» wie kann ich Sonderzeichen ( ö, ä, ü, ?, usw. ) mit Javascipt richtig darstellen?

      In dem du den richitgen Zeichensatz verwendest. Das gibt es mehrere Stellen, wo du Fehler machen kannst. In deinem Editor muss der gleiche Zeichensatz eingestellt sein, in dem die Seite dann im Browser dargestellt wird.

      - Einstellung im Editor UTF8
       - Browser Firefox/IE/Chrome UFT8
       - Code: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

      statt einem "ü" wird "&uuml;" angezeigt! und wenn nur "ü" eingetippt wird -> erscheint ein fragezeichen(?), also statt Schüler -> Sch?ler

      Wo mache ich ein Fehler?

      Struppi.

      gruß

      serkan

        • Code: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

        Wo mache ich ein Fehler?

        Du übermittelst ein ANSI-Dokument mit UTF-8 als Zeichencodierung. Überprüfe den HTTP-Header, http-equiv ist erstmal nicht relevant.

        1. @@suit:

          nuqneH

          Überprüfe den HTTP-Header

          Oops, Link vergessen. ;-)

          [QA-CHANGING-ENCODING], Schritt 3

          Qapla'

          Gunnar

          --
          Bildung lässt sich nicht downloaden. (Günther Jauch)
        2. Hi,

          das steht im Head:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>test</title>
          <script language="JavaScript" src="js/test.js"></script>
          <link rel="stylesheet" type="text/css" href="css/styles.css"/>
          </head>

          das steht in Javascript:

          function checkform(pcformid,pcaction) {

          var lnFehler = 0;  
          
          laForm	= document.getElementById(pcformid).id.split("-");  
          
          loinputs = document.getElementById(pcformid).getElementsByTagName("\*");  
            
          lni = 0;  
          lcaus = "";  
          while (lni < loinputs.length) {  
          	if (loinputs[lni].id != "") {  
          		laInputID	= loinputs[lni].id.split("-");  
          		if (laInputID.length > 2) {  
          			switch (laInputID [1]) {  
          				case "c":	// üerprüfung text  
          					if (loinputs[lni].value.length == 0) {  
          						alert("Das Feld "+ laInputID[2] +" muss ausgef&uuml;llt werden!");  
          						lnFehler = 1;  
          					}  
          				case "y5":	// überprüfung Wert grüßer als 5  
          					if (+loinputs[lni].value.replace(/,/,".") < 5) {  
          						alert("Das Feld "+ laInputID[2] +" muss ausgef&uuml;llt werden und der "+ laInputID[2] +" muss mindestens 5,00 EUR betragen!");  
          						lnFehler = 1;  
          					}  
          				break;  
          				case "d":	// überprüfung datum  
          					if (loinputs[lni].value.length == 0) {  
          						alert("Das Feld "+ laInputID[2] +" muss ein g&uuml;ltiges Datum enthalten!");  
          						lnFehler = 1;  
          					}  
          				break;  
          				case "sel":  
          					if (loinputs[lni].value == "-") {  
          						alert("Das Feld "+ laInputID[2] +" ist ung&uuml;ltig!");  
          						lnFehler = 1;  
          					}  
          				break;  
          				case "pw":  
          					if (loinputs[lni].value.length < 5) {  
          						alert("Das Feld "+ laInputID[2] +" muss ausgef&uuml;llt werden und mind. f&uuml;nf Zeichen enthalten!");  
          						lnFehler = 1;  
          					}  
          				break;  
          				case "agb":  
          					if (loinputs[lni].checked == false) {  
          						alert("Sie m&uuml;ssen mit den AGB's einverstanden sein!");  
          						lnFehler = 1;  
          					}  
          				break;  
          				case "n":	//nur nummern mit komma  
          					if (!IsNumeric(loinputs[lni].value,1) && loinputs[lni].value.length > 0) {  
          						alert("Bitte geben Sie in das Feld "+ laInputID[2] +" einen numerischen Wert ein!");  
          						lnFehler	= 1;  
          					}  
          				break;  
          				case "nplus":	//nur nummern mit komma und punkt  
          				break;  
          				case "plz":  
          					if (loinputs[lni].value.length != 5) {  
          						alert("Bitte geben Sie eine f&uuml;nfstellige Plz ein!");  
          						lnFehler = 1;  
          					}  
          				case "plzm":  
          					if (loinputs[lni].value.length > 0 && !IsNumeric(loinputs[lni].value,2)) {  
          						alert("Bitte geben Sie nur numerische Werte f&uuml;r die Plz ein!");  
          						lnFehler = 1;  
          					}  
          				break;  
          				case "em":	//e-mail &uuml;berpr&uuml;fung  
          				break;  
          				case "pic":	// &uuml;berpr&uuml;fung Bild  
          					if (loinputs[lni].value.length == 0) {  
          						alert("Bitte w%E4hlen Sie erst ein Bild zum hochladen aus!");  
          						lnFehler = 1;  
          					}  
          				break;  
          				case "1000":  
          					if (loinputs[lni].value.length > 1000) {  
          						alert("Der "+ laInputID[2] +" Text darf nicht gr&ouml;ßer als 1000 Zeichen beinhalten!");  
          						lnFehler = 1;  
          					}  
          				break;  
          				case "300":  
          					if (loinputs[lni].value.length > 300) {  
          						alert("Der "+ laInputID[2] +" Text darf nicht gr&ouml;ßer als 300 Zeichen beinhalten!");  
          						lnFehler = 1;  
          					}  
          				break;  
          			}  
          		}  
          	}  
          	lni++;  
          }  
            
          if (laForm[1] == "pw" && lnFehler == 0) {  
          	  
          	if (document.getElementById("passwort-pw-Passwort").value != document.getElementById("passwort1-pw-Passwort best%E4tigen").value) {  
          		alert("Die Passwort bestätigung ist fehlerhaft!");  
          		document.getElementById("passwort-pw-Passwort").value	 			= "";  
          		document.getElementById("passwort1-pw-Passwort best%E4tigen").value	= "";  
          		lnFehler	= 1;  
          	}  
          }  
            
          if (lnFehler == 0) {  
          	document.getElementById(pcformid).action	= pcaction;  
          	document.getElementById(pcformid).submit();  
          }  
          

          }

          function IsNumeric(strString,ptyp)
          //  check for valid numeric strings
          {
          if (ptyp == 1) {
          var strValidChars = "0123456789,";
          } else {
          var strValidChars = "0123456789";
          }
          var strChar;
          var blnResult = true;

          if (strString.length == 0) return false;

          //  test strString consists of valid characters listed above
          for (i = 0; i < strString.length && blnResult == true; i++)
             {
             strChar = strString.charAt(i);
             if (strValidChars.indexOf(strChar) == -1)
                {
                blnResult = false;
                }
             }
          return blnResult;
          }

          function blaettern(pnSeiten,pnSeite) {
          document.getElementById("blattern").action="index.php?site=uebersicht&sites="+pnSeiten+"&nr="+pnSeite;
          document.getElementById("blattern").submit();
          }

          function detail(pnm) {
          document.getElementById("details").action="index.php?site=details&nm="+pnm;
          document.getElementById("details").submit();
          }

          function mailsend() {
          document.getElementById("details").action="index.php?site=mailsend";
          document.getElementById("details").submit();
          }

          function zuruecku() {
          document.getElementById("backs").action="index.php?site=uebersicht";
          document.getElementById("backs").submit();
          }

          Gruß

          Sipatshi

          »»  - Code: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

          »» Wo mache ich ein Fehler?

          Du übermittelst ein ANSI-Dokument mit UTF-8 als Zeichencodierung. Überprüfe den HTTP-Header, http-equiv ist erstmal nicht relevant.

          1. @@Sipatshi:

            nuqneH

            das steht im Head:

            Irrelevant. Was steht im HTTP-Header?

            das steht in Javascript:
            alert("Das Feld "+ laInputID[2] +" muss ausgef&uuml;llt werden!");

            Was haben HTML-Zeichen-Entity-Referenzen in JavaScript-Code zu suchen? [QA-ESCAPES]

            alert("Bitte w%E4hlen Sie erst ein Bild zum hochladen aus!");

            Was haben Prozent-Escapes (Verwendung bei URIs) in JavaScript-Code zu suchen?

            Qapla'

            --
            Bildung lässt sich nicht downloaden. (Günther Jauch)
            1. Hi

              @@Sipatshi:

              nuqneH

              »» das steht im Head:

              Irrelevant. Was steht im HTTP-Header?

              »» das steht in Javascript:
              »» alert("Das Feld "+ laInputID[2] +" muss ausgef&uuml;llt werden!");

              Vorher:  alert("Das Feld "+ laInputID[2] +" muss ausgefüllt werden!");
              Darstellung im Browser "ausgef?llt"<- also mit fragezeichen, will ich aber nicht. Ich wusste mir halt nicht mehr zu helfen!

              Was haben HTML-Zeichen-Entity-Referenzen in JavaScript-Code zu suchen? [QA-ESCAPES]

              »» alert("Bitte w%E4hlen Sie erst ein Bild zum hochladen aus!");

              hier ebenso!

              Was haben Prozent-Escapes (Verwendung bei URIs) in JavaScript-Code zu suchen?

              Qapla'

              Gruß

              Sipatshi

              1. @@Sipatshi:

                nuqneH

                Ich wusste mir halt nicht mehr zu helfen!

                Wann immer du escapen willst, musst du dies so tun, wie es der Kontext verlangt:

                HTML:       Zeichenreferenzen
                URI:        Prozent-Escapes
                CSS:        '###### ' (wobei ###### der ein- bis sechsstellige hexadezimale Zeichencode ist)
                JavaScript: '\u####' (wobei #### der vierstellige(!) hexadezimale Zeichencode ist).

                Aber vermeide Escapes! Löse dein Problem!

                Qapla'

                --
                Bildung lässt sich nicht downloaden. (Günther Jauch)
                1. Hallo Gunnar!

                  JavaScript: '\u####' (wobei #### der vierstellige(!) hexadezimale Zeichencode ist)....

                  den man unter Windows am leichtesten mithilfe der Zeichentabelle (start->ausführen->charmap) ermittelt. Bei Linux heißt das Teil glaube ich auch so.

                  Viele Grüße aus Frankfurt/Main,
                  Patrick

                  --
                  _ - jenseits vom delirium - _

                     Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                  J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                  1. @@Patrick Andrieu:

                    nuqneH

                    den man unter Windows am leichtesten mithilfe der Zeichentabelle (start->ausführen->charmap) ermittelt. Bei Linux heißt das Teil glaube ich auch so.

                    Da sei an der Stelle Richard Ishidas Unicode Code Converter empfohlen.

                    Qapla'

                    --
                    Bildung lässt sich nicht downloaden. (Günther Jauch)
                    1. hi,

                      einfach spitze der Converter. Danke :-)

                      gruß

                      Sipatshi

                      @@Patrick Andrieu:

                      nuqneH

                      »» den man unter Windows am leichtesten mithilfe der Zeichentabelle (start->ausführen->charmap) ermittelt. Bei Linux heißt das Teil glaube ich auch so.

                      Da sei an der Stelle Richard Ishidas Unicode Code Converter empfohlen.

                      Qapla'

                    2. Hi!

                      nuqneH
                      Da sei an der Stelle Richard Ishidas Unicode Code Converter empfohlen.

                      lI'

                      Qapla'

                      FG Ulysses

                    3. Hallo nochmal,

                      hab mich bischen zu früh gefreut :-(

                      if (laForm[1] == "pw" && lnFehler == 0) {  
                      	  
                      	if (document.getElementById("passwort-pw-Passwort").value != document.getElementById("passwort1-pw-Passwort best\u00E4tigen").value) {  
                      		alert("Die Passwort best\u00E4tigung ist fehlerhaft!");  
                      		document.getElementById("passwort-pw-Passwort").value	 			= "";  
                      		document.getElementById("passwort1-pw-Passwort best\u00E4tigen").value	= "";  
                      		lnFehler	= 1;  
                      	}  
                      }  
                      

                      innerhalb der if anweisung wird das \u00E4 nicht zu einem ä.
                      alle anderen (per alert) funktionieren.

                      gruß

                      Sipatshi

                      @@Patrick Andrieu:

                      nuqneH

                      »» den man unter Windows am leichtesten mithilfe der Zeichentabelle (start->ausführen->charmap) ermittelt. Bei Linux heißt das Teil glaube ich auch so.

                      Da sei an der Stelle Richard Ishidas Unicode Code Converter empfohlen.

                      Qapla'

                      1. echo $begrüßung;

                          if (document.getElementById("passwort-pw-Passwort").value != document.getElementById("passwort1-pw-Passwort best\u00E4tigen").value) {  
                        

                        innerhalb der if anweisung wird das \u00E4 nicht zu einem ä.

                        Doch, das wird es ganz sicher. Allerdings darf eine ID im HTML-Kontext kein Leerzeichen und keine Umlaute enhalten. Genauer: ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

                        echo "$verabschiedung $name";

                      2. Mahlzeit Sipatshi,

                          if (document.getElementById("passwort-pw-Passwort").value != document.getElementById("passwort1-pw-Passwort best\u00E4tigen").value) {  
                        

                        Dein HTML-Code ist anscheinend fehlerhaft: <http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name@title=ID-Attribute dürfen keine Leerzeichen und Sonderzeichen enthalten>!

                        Ich schließe mich Gunnars Aufruf an: Löse Dein Problem!

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                        1. hi,

                          so jetzt sollte es gehen :-)

                          if (laForm[1] == "pw" && lnFehler == 0) {  
                          	  
                          	if (document.getElementById("passwort-pw-Passwort").value != document.getElementById("passwort1-pw-Passwort akzeptieren").value) {  
                          		alert("Das Passwort ist fehlerhaft!");  
                          		document.getElementById("passwort-pw-Passwort").value	 			= "";  
                          		document.getElementById("passwort1-pw-Passwort akzeptieren").value	= "";  
                          		lnFehler	= 1;  
                          	}  
                          }  
                          

                          Problem gelöst ( für mich zumindest ) :-)

                          Gruß

                          Sipatshi

                          Mahlzeit Sipatshi,

                          »» if (document.getElementById("passwort-pw-Passwort").value != document.getElementById("passwort1-pw-Passwort best\u00E4tigen").value) {

                          Dein HTML-Code ist anscheinend fehlerhaft: <http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name@title=ID-Attribute dürfen keine Leerzeichen und Sonderzeichen enthalten>!

                          Ich schließe mich Gunnars Aufruf an: Löse Dein Problem!

                          MfG,
                          EKKi

                          1. [latex]Mae  govannen![/latex]

                              	document.getElementById("passwort1-pw-Passwort akzeptieren").value	= "";  
                            

                            Problem gelöst ( für mich zumindest ) :-)

                            Nach wie vor gilt das, was Ekki schrieb:

                            Dein HTML-Code ist anscheinend fehlerhaft: ID-Attribute dürfen keine Leerzeichen und Sonderzeichen enthalten!

                            Cü,

                            Kai

                            --
                            „It's 106 miles to Chicago, we got a full tank of gas, half a pack of cigarettes, it's dark, and we're wearing sunglasses“.
                            „Hit it!“
                            Selfzeugs
                            SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
                          2. Mahlzeit Sipatshi,

                              if (document.getElementById("passwort-pw-Passwort").value != document.getElementById("passwort1-pw-Passwort akzeptieren").value) {  
                            

                            Problem gelöst ( für mich zumindest ) :-)

                            Nein, Du hast nur die Symptome verschleiert, anstatt die Ursache zu beheben.

                            Keine gute Idee.

                            Ich garantiere Dir, dass dieser Code irgendwann in irgendeinem Browser nicht funktionieren wird.

                            MfG,
                            EKKi

                            --
                            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                            1. Hi,

                              ich werde das problem später lösen, muss es erstmal dem Kunden vorstellen. Danach wirds geändert. Nur bin bischen unter zeitdruck geraten.

                              gruß

                              sipatshi

                              Mahlzeit Sipatshi,

                              »» if (document.getElementById("passwort-pw-Passwort").value != document.getElementById("passwort1-pw-Passwort akzeptieren").value) {
                              »»
                              »» Problem gelöst ( für mich zumindest ) :-)

                              Nein, Du hast nur die Symptome verschleiert, anstatt die Ursache zu beheben.

                              Keine gute Idee.

                              Ich garantiere Dir, dass dieser Code irgendwann in irgendeinem Browser nicht funktionieren wird.

                              MfG,
                              EKKi

                              1. Mahlzeit sipatshi,

                                ich werde das problem später lösen, muss es erstmal dem Kunden vorstellen. Danach wirds geändert. Nur bin bischen unter zeitdruck geraten.

                                O ... M ... G ...

                                Ich glaube, wenn ich tagtäglich nach dieser Prämisse arbeiten würde, hätte ich schon vor Ewigkeiten meine Kündigung erhalten.

                                Wieso glaubt eigentlich jeder Hans und Franz, der das Wort "Brauser" ansatzweise buchstabieren kann, er müsse jetzt dringend "in Webdesign machen" und irgendwelchen "Kunden" irgendwelchen halbgaren Mist verkaufen?

                                Ich meine, wenn meine Heizung streikt, dann hole ich doch auch nicht irgendeinen Knallkopp, der vor Jahren mal ne Gärtnerlehre geschmissen hat!

                                Manchmal ist es echt nicht zum Aushalten ...

                                MfG,
                                EKKi

                                --
                                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                2. hi, danke für die Aufklärung :-) Jetzt habs ich kappiert und kenne die Unterschiede. Es funktioniert. jaaaaaaaa, hüpf hüpf, freu :-)

                  @@Sipatshi:

                  nuqneH

                  »» Ich wusste mir halt nicht mehr zu helfen!

                  Wann immer du escapen willst, musst du dies so tun, wie es der Kontext verlangt:

                  HTML:       Zeichenreferenzen
                  URI:        Prozent-Escapes
                  CSS:        '###### ' (wobei ###### der ein- bis sechsstellige hexadezimale Zeichencode ist)
                  JavaScript: '\u####' (wobei #### der vierstellige(!) hexadezimale Zeichencode ist).

                  Aber vermeide Escapes! Löse dein Problem!

                  Qapla'

              2. echo $begrüßung;

                Vorher:  alert("Das Feld "+ laInputID[2] +" muss ausgefüllt werden!");
                Darstellung im Browser "ausgef?llt"<- also mit fragezeichen,

                Das deutet darauf hin, dass der Browser UTF-8 erwartet aber keins bekommt. Stell mal im Browser im Ansicht-Menü die Zeichenkodierung auf ISO-8859-1 um. Wenn dann die Umlaute zu sehen sind, lieferst du ISO-8859-1 aus, deklarierst das aber als UTF-8.

                echo "$verabschiedung $name";

    2. @@Struppi:

      nuqneH

      In dem du den richitgen Zeichensatz verwendest.

      Das tut man doch immer: Unicode.

      Du meinst die richtige Zeichencodierung. [QA-WHAT-IS-ENCODING, Jendryschik]

      Qapla'

      Gunnar

      --
      Bildung lässt sich nicht downloaden. (Günther Jauch)
      1. Hallo Gunnar,

        nuqneH
        Qapla'

        was soll eigentlich neuerdings diese seltsame Anhäufung von Buchstaben?

        So long,
         Martin

        --
        Die beste Informationsquelle sind Leute, die jemand anderem versprochen haben, nichts weiterzuerzählen.
          (alte Journalistenweisheit)
        1. Mahlzeit Der Martin,

          was soll eigentlich neuerdings diese seltsame Anhäufung von Buchstaben?

          http://www.kli.org/

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        2. [latex]Mae  govannen![/latex]

          nuqneH
          Qapla'

          was soll eigentlich neuerdings diese seltsame Anhäufung von Buchstaben?

          Das bedeutet, daß Gunnar wahrscheinlich knochige Ausbuchtungen auf der Stirn hat.

          Cü,

          Kai

          --
          „It's 106 miles to Chicago, we got a full tank of gas, half a pack of cigarettes, it's dark, and we're wearing sunglasses“.
          „Hit it!“
          Selfzeugs
          SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?