4.2.6 escape()
Einige Vorgänge im Web lassen die Verwendung bestimmter Zeichen nicht zu. So sind z.B. deutsche Umlaute und Leerzeichen in einem URL nicht möglich. Will man diese trotzdem verwenden (z.B. weil der Name "Günther Strauß" an den Server übermittelt werden soll), muss man sie "maskieren". Kommt ein nicht erlaubtes Zeichen vor, muss es in ein Prozentzeichen mit nachfolgendem hexadezimalem Code (z.B. %20 für ein Leerzeichen) umgewandelt werden. Dabei wird der ISO-Latin-1-Zeichensatz zugrunde gelegt. (Über ISO Latin 1 hinausgehende Unicode-Zeichen werden laut ECMAScript in der Form %uXXXX dargestellt; damit können allerdings nur wenige Webserver umgehen.)
Die Funktion escape() ermöglicht es Ihnen, Sonderzeichen –
wie z.B. Leerzeichen, einige Satzzeichen, eben alles, was in einem URL
nicht erlaubt ist – innerhalb einer Zeichenkette so umzuwandeln,
dass eine korrekte Übertragung als Teil eines URL möglich
ist. Nicht umgewandelt werden von dieser Funktion Buchstaben (wohl
aber Umlaute), Ziffern sowie die Zeichen @, *, _ (Unterstrich), +,
–, . (Punkt) und /.
Die Umwandlung der übrigen Sonderzeichen erfolgt in hexadezimale
Zahlen, die hinter ein %-Zeichen geschrieben werden. Diese sind die
hexadezimalen Repräsentationen des Positionen der Zeichen im
Zeichensatz Latin-1 bzw. UTF-16.
<script type="text/javascript">
alert(escape("Günther Strauß"));
</script>
Ansehen
Probieren Sie diese Anweisung innerhalb eines Skripts aus und Sie
werden feststellen, dass in dem mit alert() erzeugten Ausgabefenster
Folgendes erscheint:
G%FCnther%20Strau%DF
Umgangssprachlich kann man auch sagen: "Die Daten werden maskiert". Dabei wird anstelle des ü ein %FC geschrieben, statt des Leerzeichens ein %20 und statt des ß ein %DF. Die Werte nach dem Prozentzeichen stellen dabei den hexadezimalen Wert dar, der in Latin-1 bzw. UTF-16 für das jeweilige Sonderzeichen festgelegt wurde.
