chr(9)、chr(10)、chr(13)、chr(32)、chr(34)
ASCII コードに関するすべての表: [url][/url]
chr(13) はキャリッジリターンです
Chr(10) は改行文字です
chr(32) はスペース文字です
9/34はタブ、決まってない?
以下にいくつかの例を示します
特殊なスペース文字
ASP プログラミングでは、データの先頭と末尾にあるスペースを削除するために、trim(rtrim,ltrim) 関数をよく使用します。作成者は最近、次のコードを使用して ASP チャット ルームを作成しました。
<% 薄暗い名前、タイトル
name=trim(request.form("name"))
パスワード=trim(request.form("パスワード"))
name=""またはpassword=""の場合、response.redirect "error.asp?error=name&name=null"
myDSN="DSN=テスト;uid=テスト;pwd=テスト"
set cn=server.createobject("adodb.connection")
cn.open myDSN
sql="テスト(名前,タイトル)に値を挿入('"&名前&"','"&パスワード&"')"
cn.execute(SQL)
cn.close%>
作成者は、trim 関数を使用して先頭と末尾のスペースを削除しました。通常の状況では、このプログラムは正常に実行されましたが、後で誰かがスペースを使用して入力できることがわかりました。これは、ユーザーの名前が完全にスペースであることを意味します。著者はスペースを使用しようとしましたが、それを渡すことができませんでした(つまり、プログラムによって検出されました)。途中にスペースがあっても、先頭と末尾のスペースは削除されます。必要に応じて。関数を使用して真ん中のスペースを削除します。作成者は SQL データベースに記録されているユーザー情報を使用しているため、システムがそれを認識できないようにするために何か他のものを使用しているのではないかと考え、SQL データベースを確認します。これはユーザー情報を記録します(著者はこの方法を使用してユーザーを改行で表示しました)が、データベース内のユーザーの情報にもスペースが含まれていることがわかります。これは、このユーザーが私のユーザー名をバイパスする方法を使用したことを意味します。そしてパスワードの監視は? ? ?プログラムには抜け穴がまったく見つからなかったので、このユーザーにアドバイスを求めることしかできませんでしたが、幸いなことに、このユーザーは、「Alt + 255」であることが判明し、Alt キーを押したまま「」を押すとすぐに教えてくれました。小さなキーボードの Center"。2"、"5"、"5" は特別な "スペース" 文字を生成します (作者はこの概念についてあまり明確ではありません。これは一部のコンパイラでは制御文字です)エディタでは word2000 が表示されますが、他の制御文字もあるはずです)。このスペース文字は、スペース バーを押して生成される従来の文字とは異なります。また、従来のスペースで入力されたスペースの asc コードは 255 です。 32. トリム関数は asc コード 32 のコードしか認識して削除できないため、スペースを含むユーザーがいます。この状況に対応して、作成者は「スペース」文字を削除する次の 2 つの関数を設計しました。
関数 xuankong(str)
薄暗い結果
薄暗いj
j=長さ(文字列)
結果=""
薄暗い私
i = 1 ~ j の場合
ケースを選択してください (str,i,1)
「<」の場合
結果=結果+"<"
場合>"
結果=結果+">"
ケースchr(34)
結果=結果+"""
場合 "&"
result=result+"&" '上記のコードはいくつかの HTML タグを変換します
case chr(255) '特殊なスペースを禁止します
結果=結果
case chr(13) 'キャリッジリターンを防止します
結果=結果+""
case chr(10) '改行文字を禁止します
結果=結果+""
それ以外の場合
結果=結果+mid(str,i,1)
エンドセレクト
次
玄公=結果
終了関数
次に、ASP プログラムでこの関数を次のように使用します。
name=xuankong(trim(request.form("name")))
文字 0 ~ z の ASC コードの値は 48 ~ 122 の範囲にあるため、次の方法を使用して監視できます。
薄暗いj
j=len(trim(request.form("名前")))
i= 1 ~ j の場合
asc(mid(name,i,1))>122 または asc(mid(name,i,1))<48 の場合、response..redirect"error.asp?
エラー=特殊"
次
この種の「スペース」は、プログラムに損傷を与える問題を引き起こすことはまだ発見されていませんが、トラブルを引き起こす可能性があるため、予防することが望ましいですが、この種のスペースを使用すると利点もあります。あなたのインターネット パスワード、ふふ…残念ながら、これを見ることができる人はあまりいないでしょう。私が見たものはすべて空間だと思われていましたが、実際はそうではありませんでした... 著者は php と jsp に詳しくないので、これら 2 つのものにこの種の問題が存在するかどうかはわかりません。
ニューグオ 2006-1-12 01:55 AM
スペースの読み方
スペースの読み方
チャット ルームやフォーラムなどのプログラムを作成する場合、Web ページ上のファイルから取得したコンテンツを動的に表示する必要があることがよくあります。まず、各講演者のコンテンツをテキスト ファイルに保存してから、そのテキスト ファイルに表示する必要があります。ウェブページ。しかし、ユーザーがコンテンツを入力できるようにするために Web ページで使用するコントロールはテキスト ボックスです。すると、テキストボックスの内容をWebページ上で表示すると、スペースや改行などの文字が表示されず、段落が存在しません。 Web ページに段落を表示するには、テキストを入力するスペースと改行文字に HTML タグを挿入して、これらの文字を表示する必要があります。以下の例を参照してください。
Web ページ上にチャット ルーム画面がある場合、テキスト ボックスに内容を入力した後、[送信] をクリックすると、テキスト ボックスという名前がページ上に表示されます。これを行うには、次のメソッドを使用します。非常に巧妙にテキストの改行とスペースを表示する機能を実現します。
<%
...
...
str=リクエスト.クエリ文字列("テキスト1")
str=置換(str, Chr(32), " ")
'スペースを記号に置き換えます
str=置換(str, vbCrLf, "<br>")
'キャリッジ リターンとライン フィード文字を <br> フラグに置き換えます
Response.write str
...
...
%>
上記のコードを渡した後、テキスト中の改行文字と改行文字をブラウザが認識できる<br> 改行記号に変更し、スペースをスペース記号に置き換えます。このうち、Chr(32)はスペースを表し、vbCrLfは復帰と改行を表します。
ニューグオ 2006-1-12 01:55 AM
chr(13) はキャリッジリターンです
(
例: すべての復帰を <br/> に置き換えます。
#Replace(foo, Chr(13), "<br />", "ALL")#
)
Chr(10) は改行文字です
ASCII コードに関するすべての表: [url][/url]
<cfscript>
/**
※記事段落整形機能の強化版
* ) を使用して TAB を置き換え、複数のシステムをサポートします
* Nathan Dintenfas による書き換えとマルチ OS のサポート。
*
* @param string フォーマットする文字列 (必須)。
* @return 文字列を返します。
* @著者 Ben Forta ([email][email protected][/email])
* @バージョン 3、2002 年 6 月 26 日
*/
関数 Paragrap1hFormat2(str) {
//まず Windows スタイルを Unix スタイルにします
str = replace(str,chr(13)&chr(10),chr(10),"ALL");
//Macintosh スタイルを Unix スタイルに変更します
str = replace(str,chr(13),chr(10),"ALL");
//タブを修正します
str = replace(str,chr(9)," ","ALL");
//HTML でフォーマットされたテキストを返すようになりました
return replace(str,chr(10),"<br />","ALL");
}
</cfscript>