ö, ä, ü, €, usw. -> falsche darstellung!
Sipatshi
- javascript
0 Struppi0 Sipatshi0 suit
0 Gunnar Bittersmann
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: ö, ä, ü, ?,
ä ä
Ä Ä
ö ö
Ö Ö
ü ü
Ü Ü
ß ß
€ €
gruß Sipatshi
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.
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 "ü" 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.
@@suit:
nuqneH
Überprüfe den HTTP-Header
Oops, Link vergessen. ;-)
[QA-CHANGING-ENCODING], Schritt 3
Qapla'
Gunnar
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ü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ü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ültiges Datum enthalten!");
lnFehler = 1;
}
break;
case "sel":
if (loinputs[lni].value == "-") {
alert("Das Feld "+ laInputID[2] +" ist ungültig!");
lnFehler = 1;
}
break;
case "pw":
if (loinputs[lni].value.length < 5) {
alert("Das Feld "+ laInputID[2] +" muss ausgefüllt werden und mind. fünf Zeichen enthalten!");
lnFehler = 1;
}
break;
case "agb":
if (loinputs[lni].checked == false) {
alert("Sie mü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ü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ür die Plz ein!");
lnFehler = 1;
}
break;
case "em": //e-mail überprüfung
break;
case "pic": // überprü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ößer als 1000 Zeichen beinhalten!");
lnFehler = 1;
}
break;
case "300":
if (loinputs[lni].value.length > 300) {
alert("Der "+ laInputID[2] +" Text darf nicht größ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.
@@Sipatshi:
nuqneH
das steht im Head:
Irrelevant. Was steht im HTTP-Header?
das steht in Javascript:
alert("Das Feld "+ laInputID[2] +" muss ausgefü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'
Hi
@@Sipatshi:
nuqneH
»» das steht im Head:
Irrelevant. Was steht im HTTP-Header?
»» das steht in Javascript:
»» alert("Das Feld "+ laInputID[2] +" muss ausgefü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
@@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'
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
@@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'
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'
Hi!
nuqneH
Da sei an der Stelle Richard Ishidas Unicode Code Converter empfohlen.
lI'
Qapla'
FG Ulysses
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'
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";
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
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
[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
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
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
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
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'
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";
@@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
Hallo Gunnar,
nuqneH
Qapla'
was soll eigentlich neuerdings diese seltsame Anhäufung von Buchstaben?
So long,
Martin
Mahlzeit Der Martin,
was soll eigentlich neuerdings diese seltsame Anhäufung von Buchstaben?
MfG,
EKKi
[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