chr(9), chr(10), chr(13), chr(32), chr(34)
Alle Tabellen zu ASCII-Codes: [url][/url]
chr(13) ist ein Wagenrücklauf
Chr(10) ist ein Zeilenumbruchzeichen
chr(32) ist ein Leerzeichen
9/34 ist ein Tab, nicht bestimmt?
Hier sind einige Beispiele
besonderer Raumcharakter
Bei der ASP-Programmierung verwenden wir häufig die Funktion trim(rtrim,ltrim), um die Leerzeichen am Anfang und Ende einiger Daten zu entfernen. Der Autor hat kürzlich einen ASP-Chatroom mit dem folgenden Code geschrieben:
<% Dim Name,Titel
name=trim(request.form("name"))
Passwort=trim(request.form("Passwort"))
wenn name=""oder passwort="", dann Response.redirect "error.asp?error=name&name=null"
myDSN="DSN=test;uid=test;pwd=test"
set cn=server.createobject("adodb.connection")
cn.öffne myDSN
sql="insert into test(name,title) Values('"&name&"','"&password&"')"
cn.execute(sql)
cn.close%>
Der Autor hat die Trimmfunktion verwendet, um die Leerzeichen am Anfang und Ende zu entfernen. Unter normalen Umständen wurde dieses Programm normal ausgeführt, aber später stellte ich fest, dass jemand Leerzeichen zur Eingabe verwenden konnte, was bedeutete, dass der Name des Benutzers vollständig aus Leerzeichen bestand Der Autor hat versucht, Leerzeichen zu verwenden, konnte diese jedoch nicht übergeben (das heißt, die Leerzeichen am Anfang und Ende wurden von der Trimmfunktion entfernt). Auch wenn in der Mitte Leerzeichen vorhanden sind, kann ich diese verwenden wenn nötig. Verwenden Sie eine Funktion, um die Leerzeichen in der Mitte zu entfernen. Da der Autor die in der SQL-Datenbank aufgezeichneten Benutzerinformationen verwendet, vermutet der Autor, dass er etwas anderes verwendet hat, um zu verhindern, dass das System sie sieht, und überprüft daher die SQL-Datenbank Das zeichnet die Benutzerinformationen auf (der Autor, ich habe diese Methode verwendet, um Benutzer mit Zeilenumbrüchen anzuzeigen), aber ich sehe immer noch, dass die Benutzerinformationen in der Datenbank auch Leerzeichen enthalten. Bedeutet dies, dass dieser Benutzer eine Methode verwendet hat, um meinen Benutzernamen zu umgehen? und Passwortüberwachung? ? ? Ich konnte wirklich keine Lücken im Programm finden und konnte daher nur diesen Benutzer um Rat fragen. Glücklicherweise sagte mir dieser Benutzer sofort, dass es sich um „Alt+255“ handelte. Halten Sie die Alt-Taste gedrückt und drücken Sie dann „. Center“ auf der kleinen Tastatur. 2“, „5“, „5“ erzeugen ein spezielles „Leerzeichen“ (der Autor ist sich über dieses Konzept nicht ganz im Klaren). Dies ist in einigen Compilern ein Steuerzeichen Sie können Word2000 im Editor sehen, und es sollten andere Steuerzeichen vorhanden sein. Dieses Leerzeichen unterscheidet sich von dem herkömmlichen Zeichen, das durch Drücken der Leertaste generiert wird. Sein ASC-Code ist 255, und der ASC-Code des herkömmlichen Leerzeichens ist 32. Die Trim-Funktion kann den Code nur mit ASC-Code 32 erkennen und entfernen, daher gibt es Benutzer mit Leerzeichen! Als Reaktion auf diese Situation hat der Autor die folgenden zwei Funktionen entwickelt, um das „Leerzeichen“ zu entfernen:
Funktion xuankong(str)
düsteres Ergebnis
dim j
j=len(str)
result=""
dim ich
für i = 1 bis j
wähle den Fall mid(str,i,1)
Fall „<“
result=result+"<"
Fall „>“
result=result+">"
Gehäuse Chr(34)
Ergebnis=Ergebnis+"""
Fall "&"
result=result+"&" 'Der obige Code konvertiert einige HTML-Tags
case chr(255) 'Spezielle Leerzeichen verhindern
Ergebnis=Ergebnis
case chr(13) 'Wagenrückläufe verhindern
Ergebnis=Ergebnis+""
case chr(10) 'Neuzeilenzeichen verhindern
Ergebnis=Ergebnis+""
Fall anders
result=result+mid(str,i,1)
Ende auswählen
nächste
xuankong=Ergebnis
Endfunktion
Dann verwenden Sie diese Funktion in Ihrem ASP-Programm, wie zum Beispiel:
name=xuankong(trim(request.form("name")))
Da der Wert des Zeichen-Asc-Codes 0-z im Bereich 48-122 liegt, können Sie zur Überwachung die folgende Methode verwenden:
dim j
j=len(trim(request.form("name")))
für i= 1 bis j
Wenn asc(mid(name,i,1))>122 oder asc(mid(name,i,1))<48 dann Response..redirect"error.asp?
Fehler=speziell“
nächste
Es wurde zwar noch nicht festgestellt, dass diese Art von „Speicherplatz“ Probleme verursacht, die das Programm beschädigen würden, und es ist besser, dies zu verhindern. Allerdings hat diese Art von Speicherplatz auch einen Vorteil, wenn sie als verwendet wird Ihr Internet-Passwort, hehe ... Ich fürchte, nicht viele Leute können es sehen! Alles, was ich sah, wurde für Leerzeichen gehalten, aber das war nicht der Fall ... Der Autor ist mit PHP und JSP nicht vertraut, daher weiß ich nicht, ob bei diesen beiden Dingen ein solches Problem besteht.
neweguo 12.01.2006 01:55 Uhr
So lesen Sie Leerzeichen
So lesen Sie Leerzeichen
Wir müssen häufig Inhalte aus Dateien auf Webseiten dynamisch anzeigen. Wenn Sie ein Programm wie einen Chatroom oder ein Forum schreiben, muss der Inhalt jedes Sprechers zuerst in einer Textdatei gespeichert und dann in der Textdatei angezeigt werden Webseite. Aber das Steuerelement, das wir auf der Webseite verwenden, um Benutzern die Eingabe von Inhalten zu ermöglichen, ist das Textfeld. Wenn dann der Inhalt des Textfelds auf der Webseite angezeigt wird, können Zeichen wie Leerzeichen und Zeilenumbrüche nicht angezeigt werden, was bedeutet, dass keine Absätze vorhanden sind. Um Absätze auf einer Webseite anzuzeigen, müssen HTML-Tags in die Leerzeichen und Zeilenumbrüche eingefügt werden, in die wir Text eingeben, um diese Zeichen anzuzeigen. Bitte sehen Sie sich das folgende Beispiel an.
Wenn es auf der Webseite einen Chatroom-Bildschirm gibt, klicken Sie nach der Eingabe des Inhalts in das Textfeld auf „Senden“, um unseren Inhalt auf der Seite anzuzeigen. Wir können dazu die folgende Methode verwenden Sehr geschickt realisieren Sie die Funktion der Anzeige von Textzeilenumbrüchen und Leerzeichen.
<%
...
...
str=request.querystring("text1")
str=Replace(str, Chr(32), " ")
„Leerzeichen durch Zeichen ersetzen.“
str=Replace(str, vbCrLf, "<br>")
'Ersetzen Sie die Wagenrücklauf- und Zeilenvorschubzeichen durch das <br>-Flag
Response.write str
...
...
%>
Nachdem wir den obigen Code übergeben haben, ändern wir die Wagenrücklauf- und Zeilenvorschubzeichen im Text in die Zeilenvorschubmarke <br>, die der Browser erkennen kann, und ersetzen die Leerzeichen durch die Leerzeichen. Unter diesen steht Chr(32) für ein Leerzeichen und vbCrLf für einen Wagenrücklauf und einen Zeilenvorschub.
neweguo 12.01.2006 01:55 Uhr
chr(13) ist ein Wagenrücklauf
(
Beispiel: Ersetzen Sie alle Wagenrückläufe durch <br/>
#Replace(foo, Chr(13), "<br />", "ALL")#
)
Chr(10) ist ein Zeilenumbruchzeichen
Alle Tabellen zu ASCII-Codes: [url][/url]
<cfscript>
/**
* Eine erweiterte Version der Artikelabsatzformatierungsfunktion
* Verwenden Sie ), um TAB zu ersetzen und mehrere Systeme zu unterstützen
* Rewrite und MultiOS-Unterstützung von Nathan Dintenfas.
*
* @param string Die zu formatierende Zeichenfolge (erforderlich)
* @return Gibt eine Zeichenfolge zurück.
* @Autor Ben Forta ([email][email protected][/email])
* @Version 3, 26. Juni 2002
*/
Funktion Paragrap1hFormat2(str) {
//Zuerst den Windows-Stil in den Unix-Stil umwandeln
str = replace(str,chr(13)&chr(10),chr(10),"ALL");
//Jetzt Macintosh-Stil in Unix-Stil umwandeln
str = replace(str,chr(13),chr(10),"ALL");
//Jetzt Tabs reparieren
str = replace(str,chr(9)," ","ALL");
//Jetzt den in HTML formatierten Text zurückgeben
return replace(str,chr(10),"<br />","ALL");
}
</cfscript>