Discussion:
Select-Box HTML-Entities
(zu alt für eine Antwort)
Peter
2004-08-03 08:26:21 UTC
Permalink
Moin,

ich erzeige per Javascript Einträge in Selectboxen.
Leider wandelt er die Umlaute aber nicht um.

Gibt es da eine Möglichkeit?


<select name="select">
<option value="0">&Auml;rgerlich</option>
</select>

Ausgabe: Ärgerlich


<script language="JavaScript">
NeuerEintrag = new Option("&Auml;rgerlich","0");
document.form.select.options[document.search.location_id.length]=NeuerEintrag;

</script>
Ausgabe: &Auml;rgerlich


Gruß,

Peter
Ralf Beutler
2004-08-03 09:04:11 UTC
Permalink
Post by Peter
NeuerEintrag = new Option("&Auml;rgerlich","0");
Was ist mit:
NeuerEintrag = new Option("Ärgerlich","0");

br | rb
--
Sie freuten sich riesig, wenn eine Maschine nach sechs Stunden etwas
fertig brachte, wozu jeder Mensch auf der Straße für 2 Cent fähig
gewesen wäre. Anschließend ließen sie sich Bananen- und Sushi-Pizza
kommen und schliefen vor der Tastatur ein. [aus T.P., Heiße Hüpfer]
Peter
2004-08-03 09:26:44 UTC
Permalink
Post by Ralf Beutler
Post by Peter
NeuerEintrag = new Option("&Auml;rgerlich","0");
NeuerEintrag = new Option("Ärgerlich","0");
br | rb
Das gibt dann Probleme mit nicht-deutschen (undeutschen?) Browsern.
Bernd Muent
2004-08-03 09:41:41 UTC
Permalink
Post by Peter
Post by Ralf Beutler
NeuerEintrag = new Option("Ärgerlich","0");
Das gibt dann Probleme mit nicht-deutschen (undeutschen?) Browsern.
"undeutsch": Welch Unwort ;-)
Du meinst die Codierung ISO8859-1 bzw. -15?
Dann mußt du halt den passenden Content-Header setzen:
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">

Probleme gibt es erst dann, wenn du noch weitere Sonderzeichen aus
anderen Zeichensätzen einbauen willst. Dann mußt du wohl auf Unicode
oder UTF-8 ausweichen.

B.
--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: ***@bmservices.de
Peter
2004-08-03 10:31:52 UTC
Permalink
Post by Bernd Muent
Post by Peter
Post by Ralf Beutler
NeuerEintrag = new Option("Ärgerlich","0");
Das gibt dann Probleme mit nicht-deutschen (undeutschen?) Browsern.
"undeutsch": Welch Unwort ;-)
Du meinst die Codierung ISO8859-1 bzw. -15?
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
Probleme gibt es erst dann, wenn du noch weitere Sonderzeichen aus
anderen Zeichensätzen einbauen willst. Dann mußt du wohl auf Unicode
oder UTF-8 ausweichen.
B.
Als vernünftiger Mensch habe ich natürlich den charset definiert.
Aber auch auf die Gefahr hin, mich als kompletter Trottel zu outen:
Wenn die content-definition im Header ausreicht, wozu braucht man dann
(auf Seiten mit einem Zeichensatz)noch das ganze Entity-Gerümpel?
Bernd Muent
2004-08-03 10:43:33 UTC
Permalink
Post by Peter
Als vernünftiger Mensch habe ich natürlich den charset definiert.
Wenn die content-definition im Header ausreicht, wozu braucht man dann
(auf Seiten mit einem Zeichensatz)noch das ganze Entity-Gerümpel?
Manchmal führen mehrere Wege nach Rom:

Ä = &Auml; = &#196; = &#xC4;

dürfte mit Unicode-Fonts ein und dasselbe darstellen.
Ein Nachteil z.B.: Bei &#196; muß ich zwangsläufig in eine Tabelle schauen.
Ein Vorteil: Bei &Auml; verstehe ich: Großes A Umlaut und kann es mir
vorstellen ohne Tabelle.
Nur manche Sachen gehen eben nur in manchen Kontexten.

B.
--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: ***@bmservices.de
Martin Honnen
2004-08-03 10:43:54 UTC
Permalink
Post by Peter
Als vernünftiger Mensch habe ich natürlich den charset definiert.
Wenn die content-definition im Header ausreicht, wozu braucht man dann
(auf Seiten mit einem Zeichensatz)noch das ganze Entity-Gerümpel?
Wenn du ISO-8859-1 benutzt und das dem Browser per HTTP Header und/oder
meta mitteilst, brauchst du sicher keine Entity/Character-Referenzen
fuer deutsche Umlaute, die sind schliesslich schon in ISO-8859-1
enthalten. Aber es gibt dann halt Zeichen wie das Euro-Symbol, das nicht
in ISO-8859-1 enthalten ist, und das muss man dann per Entity-Referenz
in das Dokument einfuegen.
Aber ein Script, das DOM-Eigenschaften aendert, muss sicherlich keine
Entity-Referenzen einfuegen, ausser es werden Eigenschaften wie
innerHTML geaendert, bei dem das Aendern der Eigenschaft ein Parsen bewirkt.
--
Martin Honnen
http://JavaScript.FAQTs.com/
Dietmar Meier
2004-08-03 10:46:49 UTC
Permalink
Peter <***@meyer-delius.de> typed:
^^^^^ bitte reparieren!
Post by Peter
Wenn die content-definition im Header ausreicht, wozu braucht man dann
(auf Seiten mit einem Zeichensatz)noch das ganze Entity-Gerümpel?
Vier Gründe, nachzulesen in http://www.w3.org/TR/html4/charset.html

Die ersten zwei Gründe:
| A given character encoding may not be able to express all characters
| of the document character set. For such encodings, or when hardware or
| software configurations do not allow users to input some document
| characters directly, authors may use SGML character references.

Der dritte Grund:
| In order to give authors a more intuitive way of referring to
| characters in the document character set, HTML offers a set of
| character entity references. Character entity references use symbolic
| names so that authors need not remember code positions.

Der vierte und wichtigste Grund:
| Four character entity references deserve special mention since they
| are frequently used to escape special characters:
| · "&lt;" represents the < sign.
| · "&gt;" represents the > sign.
| · "&amp;" represents the & sign.
| · "&quot; represents the " mark.

ciao, dhgm
Thomas 'PointedEars' Lahn
2004-08-03 22:01:39 UTC
Permalink
Post by Bernd Muent
Post by Peter
Post by Ralf Beutler
NeuerEintrag = new Option("Ärgerlich","0");
Das gibt dann Probleme mit nicht-deutschen (undeutschen?) Browsern.
"undeutsch": Welch Unwort ;-)
ACK
Post by Bernd Muent
Du meinst die Codierung ISO8859-1 bzw. -15?
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
Diese _Zeichensatzdeklaration_ (es handelt sich dabei gerade _nicht_ um
einen Header, sondern um sein Äquivalent -- daher "http-equiv") ist wichtig,
denn sie dient zur korrekten Darstellung des Dokuments, wenn es _nicht_ über
HTTP ausgeliefert wird. Ausreichend ist sie aber noch lange nicht. Es muss
außerdem der "Content-Type"-Header vom Server gesetzt werden, so dass sich
etwa folgende Headerzeile in der Antwort findet:

Content-Type: text/html; charset=ISO-8859-1
Post by Bernd Muent
Probleme gibt es erst dann, wenn du noch weitere Sonderzeichen aus
anderen Zeichensätzen einbauen willst. Dann mußt du wohl auf Unicode
oder UTF-8 ausweichen.
Und auch dieses muss per HTTP deklariert werden.

Eigentlich wäre X-Post & F'up2 <dciwam/> angebracht, aber das wurde
dort bereits ad nauseam diskutiert.


PointedEars
Bernd Muent
2004-08-04 07:00:18 UTC
Permalink
Post by Thomas 'PointedEars' Lahn
ACK
Danke ;-)
Post by Thomas 'PointedEars' Lahn
Post by Bernd Muent
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
Diese _Zeichensatzdeklaration_ (es handelt sich dabei gerade _nicht_ um
einen Header, sondern um sein Äquivalent -- daher "http-equiv")
Ah, wieder was gelernt, "equiv" steht offensichtlich für "äquivalent".


B.
--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: ***@bmservices.de
Thomas 'PointedEars' Lahn
2004-08-03 21:50:00 UTC
Permalink
Peter wrote:
^^^^^
Da fe lt Dein Nachname.
Post by Peter
Post by Ralf Beutler
Post by Peter
NeuerEintrag = new Option("&Auml;rgerlich","0");
NeuerEintrag = new Option("Ärgerlich","0");
[...]
Das gibt dann Probleme mit nicht-deutschen (undeutschen?) Browsern.
Nein, es gibt lediglich Probleme mit kapotten Browsern.


PointedEars
Loading...