Umlaute in Javascript maskieren?
D.R.
- javascript
0 Nico0 D.R.0 derletztekick0 Nico
0 Dieter Raber0 molily
2 Gunnar Bittersmann
Hi,
Gibt es eine Möglichkeit, Umlaute in Javascript zu maskieren?
Ich kann bei mir leider keine Zeichenangabe machen, da ich XHTML verwende, diese aus kompatiblitätsgrüden aber noch als text/html versende. In HTML kann man ja einfach ä und sowas reinschreiben. Wenn ich das aber bei Javascript mache, wandelt der Browser das ä in ä um, wodurch wiederum "ä" statt "ä" angezeigt wird.
Wie kann ich dieses Sonderzeichen also richtig maskieren? Oder geht das nicht?
Danke schon mal im vorraus!
PS: Server-Technologien möchte ich nicht verwenden, da die Dateien auch offline nutzbar bleiben sollen.
Ich kann bei mir leider keine Zeichenangabe machen, da ich XHTML verwende, diese aus kompatiblitätsgrüden aber noch als text/html versende. In HTML kann man ja einfach ä und sowas reinschreiben. Wenn ich das aber bei Javascript mache, wandelt der Browser das ä in ä um, wodurch wiederum "ä" statt "ä" angezeigt wird.
Das kommt darauf an, was du mit deinen Javascripts machst. Wenn dur document.write() (geht in XHTML-Seiten natürlich nicht) oder document.getElementById("x").innerHTML benutzt kannst du mit Entities (z. B. é) arbeiten und alles wird richtig dargestellt.
Bei alert() funktioniert das nicht. Da schreibst du den Umlaut einfach aus. Um Problemen vorzubeugen, solltes du deine XHTML-Seite einfach mit der Zeichenkodierung iso-8859-1 ausliefern. (Aber lass bloß die XML-Deklaration am Anfang weg. Das macht IE 6 nervös.)
Hi,
Danke erstmal für deine Hilfe!
Das kommt darauf an, was du mit deinen Javascripts machst. Wenn dur document.write() (geht in XHTML-Seiten natürlich nicht) oder document.getElementById("x").innerHTML benutzt kannst du mit Entities (z. B. é) arbeiten und alles wird richtig dargestellt.
Ich brauch was für "firstChild.nodeValue" oder an anderer Stelle "Formularfeld.value". Beides scheint ähnlich nicht zu funktionieren...
Um Problemen vorzubeugen, solltes du deine XHTML-Seite einfach mit der Zeichenkodierung iso-8859-1 ausliefern. (Aber lass bloß die XML-Deklaration am Anfang weg. Das macht IE 6 nervös.)
Genau das ist ja das Problem. Die meta-Angabe funktioniert bei standardkonformen XHTML nicht[1]. Und die XML-Deklaration, die dieses Problem im FF und Opera beheben würde, kann ich wegen diesem IE *grr* nicht einsetzen.
Sieht wohl so aus, als ob ich ae usw. schreiben müsste :-(
Oder gibt's doch eine Möglichkeit?
Einen schönen Mittwoch noch!
[1]Das W3C hat irgendwo (hab's mal gelesen) festgelegt, dass die meta-Angabe bei XHTML ignoriert werden soll. Statt dessen: xml-Deklaration.
Hallo D.R.,
ich weiß nicht wie gut dieser Hinweis ist aber ich bin zuversichtlich, das er (im negativen Fall) entsprechend "zerrissen" wird.
Du könntest mit String.fromCharCode(<int>) ggf. etwas erreichen, was Du suchst.
Mit freundlichem Gruß
Micha
Hallo D. R.,
Genau das ist ja das Problem. Die meta-Angabe funktioniert bei standardkonformen XHTML nicht[1]. Und die XML-Deklaration, die dieses Problem im FF und Opera beheben würde, kann ich wegen diesem IE *grr* nicht einsetzen.
Verschick doch einen Header über PHP:
header('Content-Type: text/html; charset=iso-8859-1');
Nico
Hallo Nico,
Wenn dur document.write() (geht in XHTML-Seiten natürlich nicht)
Wie kommst Du da drauf?
Gruß,
Dieter
Hallo,
Wenn dur document.write() (geht in XHTML-Seiten natürlich nicht)
Wie kommst Du da drauf?
document.write() funktioniert nur in HTML-kompatiblen XHTML-Dokumenten, die mit text/html ausgeliefert werden und als »Tag Soup«, nicht als XML verarbeitet werden.
Mathias
Hello out there!
Gibt es eine Möglichkeit, Umlaute in Javascript zu maskieren?
Warum schreibst du sie nicht richtig in den Quelltext?
Ich kann bei mir leider keine Zeichenangabe machen, da ich XHTML verwende, diese aus kompatiblitätsgrüden aber noch als text/html versende.
Codierst du nicht in UTF-8? Dann hast du solche Probleme nicht.
In HTML kann man ja einfach ä und sowas reinschreiben. Wenn ich das aber bei Javascript mache, wandelt der Browser das ä in &auml; um, wodurch wiederum "ä" statt "ä" angezeigt wird.
Ist dein Scriptbereich PCDATA oder CDATA?
↗ <http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style@title=Unterschied: Inhalt von Script- und Style-Bereichen>
↗ http://gangstaplaya.de/TEST/pcdata-cdata (application/xhtml+xml)
Wie kann ich dieses Sonderzeichen also richtig maskieren? Oder geht das nicht?
Du kannst alle Zeichen bis U+FFFD auch mit ihrem (vierstelligem!) Unicode angeben: '\u00E4' für 'ä'.
See ya up the road,
Gunnar
Hi,
Ist dein Scriptbereich PCDATA oder CDATA?
↗ <http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style@title=Unterschied: Inhalt von Script- und Style-Bereichen>
↗ http://gangstaplaya.de/TEST/pcdata-cdata (application/xhtml+xml)
Ähm, ich hatte herausgefunden, dass es funktioniert, wenn ich die Datei mit application/xhtml+xml ausliefere und den Script-Bereich NICHT auslagere. Also funktioniert es nur mit PCDATA.
Wie kann ich dieses Sonderzeichen also richtig maskieren? Oder geht das nicht?
Du kannst alle Zeichen bis U+FFFD auch mit ihrem (vierstelligem!) Unicode angeben: '\u00E4' für 'ä'.
Ah vielen dank, hat funktioniert. Also mach ich's einfach so.
Einen schönen Mittwoch noch!