Discussion:
Umlaute und Sonderzeichen automatisch ersetzen ?
(zu alt für eine Antwort)
Michael Stahl
2007-10-25 15:30:51 UTC
Permalink
Hallo,

ist es möglich einer asp.net Seite mitzuteilen, dass sie bei der Ausgabe
alle ä in ä und & in & umwandeln soll?
Ich lade alle Textstellen auf der Seite aus einer Datenbank, die nicht
von mir gepflegt wird.
Deshalb hätte ich gerne eine Vereinfachung damit ich nicht jede
Textstelle von Hand anpassen muss.
Es wird zwar richtig angezeigt, aber mich stört, dass der w3c validator
es ankringelt.

Wenn jemand einen Tip für mich hat, und sei es nur unter welchem
Suchbegriff ich bei google zu 99% fündig werde, wäre das echt prima.


Gruß

Michael
Christoph Schneegans
2007-10-25 15:46:04 UTC
Permalink
Post by Michael Stahl
ist es möglich einer asp.net Seite mitzuteilen, dass sie bei der Ausgabe
alle ä in ä und & in & umwandeln soll?
ASP.NET kann wunderbar mit Unicode umgehen. Entity-Referenzen sind Krücken
für Systeme, die das nicht können, bspw. PHP. Eine Ersetzung von "ä" durch
"ä" ist also überflüssig, wenn du alles richtig machst. Und du mußt
sowieso alles richtig machen, denn Fehler bei der Decodierung kannst du im
allgemeinen nicht nachträglich korrigieren.

Die globale Ersetzung von "&" durch "&" richtet wahrscheinlich mehr
Schaden an als sie Nutzen bringt. Was, wenn dein Quelltext vorher schon ein
korrektes "&" enthält?

Es gibt durchaus Stellen, wo man selbst für die Maskierung insbesondere von
"<" und "&" achten muß, bspw. bei Zuweisungen an die Text-Eigenschaft eines
System.Web.UI.WebControls.Label, aber das macht man dann idealerweise direkt
vor Ort und nicht global. HttpServerUtility.HtmlEncode und
HttpUtility.HtmlEncode kannst du im Prinzip verwenden, beachte aber
<http://schneegans.de/asp.net/htmlspecialchars/>.
--
<http://schneegans.de/web/kanonische-adressen/> · URLs richtig verwenden
Michael Stahl
2007-10-26 08:23:44 UTC
Permalink
Hallo Christoph,

ich denke nicht, dass ASP.NET das Problem dabei ist.
Ich kann es nur nicht leiden, wenn mir der w3c validator den Text
"..... P&T ....." als Fehler darstellt, da T kein Entity ist, es aber
ein & davor hat.
Ich habe bei der ganzen Seite sehr viel Wert darauf gelegt, alles schön
nach w3c validator zu machen nur dieses kleine Teil versaut es mir wieder.
Ich bin mir durchaus bewusst, dass es in der Darstellung zu 99% keine
Fehler hervorrufen wird. Es ist wirklich nur ein Schönheitsfehler.


Gruß

Michael
Post by Christoph Schneegans
Post by Michael Stahl
ist es möglich einer asp.net Seite mitzuteilen, dass sie bei der Ausgabe
alle ä in &auml; und & in &amp; umwandeln soll?
ASP.NET kann wunderbar mit Unicode umgehen. Entity-Referenzen sind Krücken
für Systeme, die das nicht können, bspw. PHP. Eine Ersetzung von "ä" durch
"&auml;" ist also überflüssig, wenn du alles richtig machst. Und du mußt
sowieso alles richtig machen, denn Fehler bei der Decodierung kannst du im
allgemeinen nicht nachträglich korrigieren.
Die globale Ersetzung von "&" durch "&amp;" richtet wahrscheinlich mehr
Schaden an als sie Nutzen bringt. Was, wenn dein Quelltext vorher schon ein
korrektes "&amp;" enthält?
Es gibt durchaus Stellen, wo man selbst für die Maskierung insbesondere von
"<" und "&" achten muß, bspw. bei Zuweisungen an die Text-Eigenschaft eines
System.Web.UI.WebControls.Label, aber das macht man dann idealerweise direkt
vor Ort und nicht global. HttpServerUtility.HtmlEncode und
HttpUtility.HtmlEncode kannst du im Prinzip verwenden, beachte aber
<http://schneegans.de/asp.net/htmlspecialchars/>.
Christoph Schneegans
2007-10-26 08:42:15 UTC
Permalink
Post by Michael Stahl
ich denke nicht, dass ASP.NET das Problem dabei ist.
Natürlich nicht. Man kann mit ASP.NET problemlos gültigen Code erzeugen.
Andererseits hindert dich ASP.NET auch nicht daran, ungültigen Code zu erzeugen.
Post by Michael Stahl
Ich kann es nur nicht leiden, wenn mir der w3c validator den Text
"..... P&T ....." als Fehler darstellt, da T kein Entity ist, es aber
ein & davor hat.
Es ist nicht trivial, nur die "richtigen" Vorkommen von "&" zu ersetzen; u.a.

&amp; &#228; &#xFC; &auml; &szlig;

darfst du ja nicht erneut maskieren. Möglicherweise ist
<http://schneegans.de/asp.net/tidy/> was für dich?
--
<http://schneegans.de/sv/> · Schema-Validator für XML
Andreas Heyer
2007-10-25 15:49:08 UTC
Permalink
Wie wäre es denn, wenn du deine Seiten einfach als UTF-8 ausliefern
würdest, dann ist dieser Unsinn nicht nötig?! Es müssten nur noch die
Tag-Klammern gewandelt werden, wenn sie in Textknoten auftreten.

MfG
Andreas
Loading...