佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > chr(9)、chr(10)、chr(13)、chr(32)、chr(34)講解

chr(9)、chr(10)、chr(13)、chr(32)、chr(34)講解

熱門標(biāo)簽:銀行業(yè)務(wù) 團(tuán)購(gòu)網(wǎng)站 Mysql連接數(shù)設(shè)置 服務(wù)器配置 阿里云 Linux服務(wù)器 電子圍欄 科大訊飛語(yǔ)音識(shí)別系統(tǒng)
chr(9)、chr(10)、chr(13)、chr(32)、chr(34)
所有關(guān)于 ASCII碼的表格:[url]http://www.asciitable.com/[/url]
chr(13) 是一個(gè)回車
Chr(10) 是個(gè)換行符
chr(32) 是一個(gè)空格符
9\34 是tab,未確定?
以下是一些示列
特殊的空格字符
在asp編程中,我們常常使用trim(rtrim,ltrim)函數(shù)去掉一些數(shù)據(jù)的開(kāi)頭和結(jié)尾的空格,筆者最近寫了一個(gè)asp聊天室,有下面的一段代碼: 
% dim name,title 
name=trim(request.form("name")) 
password=trim(request.form("password")) 
if name=""or password="" then response.redirect "error.asp?error=namename=null"  
myDSN="DSN=test;uid=test;pwd=test" 
set cn=server.createobject("adodb.connection") 
cn.open myDSN 
sql="insert into test(name,title) values('"name"','"password"')" 
cn.execute(sql) 
cn.close%> 
筆者使用了trim函數(shù)來(lái)去掉開(kāi)頭和結(jié)尾的空格,在一般的情況下,這段程序執(zhí)行的很正常,但是后來(lái)筆者竟然發(fā)現(xiàn)有人竟然可以使用空格進(jìn)來(lái),意思就是說(shuō),該用戶的name完全為空格,但是筆者嘗試自己使用空格卻無(wú)論都不能通過(guò)(即被程序監(jiān)測(cè)了出來(lái)),開(kāi)頭和結(jié)尾的空格都被trim函數(shù)給去掉了,即使中間有空格,筆者需要的話也可以使用一個(gè)函數(shù)把中間的空格給去掉,由于筆者使用的是sql數(shù)據(jù)庫(kù)記錄下的用戶資料,于是筆者懷疑他使用了其它什么的東西讓系統(tǒng)看不到,于是去察看紀(jì)錄用戶資料的sql數(shù)據(jù)庫(kù)(筆者曾經(jīng)使用這種方法看到了帶換行符的用戶),但是筆者仍然看到數(shù)據(jù)庫(kù)中的改用戶的資料也是空格,這難道說(shuō)該用戶使用了一種手段可以繞過(guò)我的用戶名和密碼監(jiān)測(cè)嗎???實(shí)在找不到程序上的漏洞,于是只能向這位用戶請(qǐng)教,幸運(yùn)的是這位用戶爽快的告訴了筆者,原來(lái)是"Alt+255",按住alt鍵然后依次按下小鍵盤中"2","5","5"就會(huì)產(chǎn)生一個(gè)比較特殊的東西"空格"字符(這個(gè)概念筆者也不是比較清楚,這是一種控制字符,在一些編輯器中可以看到word2000,應(yīng)該還有其他的控制字符),這個(gè)空格字符不同于傳統(tǒng)的按下空格鍵產(chǎn)生的字符,它的asc代碼是255,而傳統(tǒng)的space鍵入的空格的asc代碼是32,trim函數(shù)只能認(rèn)識(shí)asc代碼為32的代碼并去除,所以出現(xiàn)了出現(xiàn)空格用戶的情況!針對(duì)這種情況筆者設(shè)計(jì)了下面的兩種函數(shù)去掉這"空格"字符:
function xuankong(str) 
dim result 
dim j 
   j=len(str) 
   result="" 
dim i  
for i = 1 to j 
   select case mid(str,i,1) 
       case "" 
          result=result+"" 
       case ">" 
          result=result+">" 
       case chr(34)   
          result=result+""" 
       case "" 
          result=result+""  '以上代碼轉(zhuǎn)換一些html標(biāo)記 
       case chr(255) '防止特殊空格 
          result=result 
       case chr(13) '防止回車符 
          result=result+"" 
       case chr(10) '防止換行符 
          result=result+"" 
       case else 
          result=result+mid(str,i,1) 
  end select 
next  
xuankong=result 
end function 
然后在你的asp程序中使用這個(gè)函數(shù),比如: 
name=xuankong(trim(request.form("name"))) 
因?yàn)樽址?-z asc代碼的數(shù)值為 48-122 這一個(gè)區(qū)段 ,所以可以使用如下的方法監(jiān)測(cè):
dim j 
j=len(trim(request.form("name"))) 
for i= 1 to  j 
if  asc(mid(name,i,1))>122 or asc(mid(name,i,1))48 then response..redirect"error.asp?
error=special" 
next
 
雖然這種“空格”暫時(shí)沒(méi)有發(fā)現(xiàn)會(huì)破壞程序的問(wèn)題,但是卻是可以讓人搗亂的,還是防了的好,不過(guò)這種空格也有一種好處,如果作為你得上網(wǎng)密碼的話,嘿嘿… …恐怕沒(méi)有幾個(gè)人能看到吧!看到的都是以為是space,但是卻不是… … 筆者不熟悉php和jsp所以不知道在這兩種東西中是否會(huì)存在這種問(wèn)題
neweguo 2006-1-12 01:55 AM
如何讀出空格
如何讀出空格
我們?cè)诰W(wǎng)頁(yè)中經(jīng)常要?jiǎng)討B(tài)顯示從文件中取出來(lái)的內(nèi)容,假如你編寫了一個(gè)聊天室或論壇之類的程序,每一位發(fā)表言論者的內(nèi)容都要先存在文本文件中,然后再顯示在網(wǎng)頁(yè)上。但是我們?cè)诰W(wǎng)頁(yè)上讓用戶輸入內(nèi)容的控件是文本框。那么文本框中的內(nèi)容顯示在網(wǎng)頁(yè)上時(shí)不能把類似空格、換行的字符顯示出來(lái),也就是說(shuō)沒(méi)有段落。要想在網(wǎng)頁(yè)上顯示段落,必須在我們輸入文本的空格、換行字符處插入HTML標(biāo)志才能把這些字符顯示出來(lái),請(qǐng)看下面的例子。
假如在網(wǎng)頁(yè)上是一個(gè)聊天室畫面,我們?cè)谖谋究蛑休斎雰?nèi)容后,點(diǎn)擊“提交”就可在頁(yè)面上把我們的內(nèi)容顯示出來(lái),文本框名為Text1 ,我們用下面的方法就可以很巧妙地實(shí)現(xiàn)顯示文本換行和空格的功能。
%
......
......
str=request.querystring("text1")
str=Replace(str, Chr(32), "nbsp")
'把空格換成nbsp標(biāo)志
str=Replace(str, vbCrLf, "br>")
'把回車換行符換成br>標(biāo)志
Response.write str
......
......
%>
經(jīng)過(guò)上面的代碼后,我們就把文本中的回車換行符變?yōu)闉g覽器所能識(shí)別的br>換行標(biāo),而把空格換為nbsp空格標(biāo)志。其中Chr(32)表示空格,vbCrLf表示回車換行。
neweguo 2006-1-12 01:55 AM
chr(13) 是一個(gè)回車
(
例子:把所有回車符替換為br/>
#Replace(foo, Chr(13), "br />", "ALL")#
)
Chr(10) 是個(gè)換行符
所有關(guān)于 ASCII碼的表格:[url]http://www.asciitable.com./[/url]
cfscript>
/**
* 一個(gè)增強(qiáng)版的文章段落格式化函數(shù)
* 使用)nbsp;替換TAB,支持多系統(tǒng)
* Rewrite and multiOS support by Nathan Dintenfas.
*
* @param string The string to format. (Required)
* @return Returns a string.
* @author Ben Forta ([email]ben@forta.com[/email])
* @version 3, June 26, 2002
*/
function Paragrap1hFormat2(str) {
//first make Windows style into Unix style
str = replace(str,chr(13)chr(10),chr(10),"ALL");
//now make Macintosh style into Unix style
str = replace(str,chr(13),chr(10),"ALL");
//now fix tabs
str = replace(str,chr(9),"nbsp;nbsp;nbsp;","ALL");
//now return the text formatted in HTML
return replace(str,chr(10),"br />","ALL");
}
/cfscript>

標(biāo)簽:蚌埠 廣元 棗莊 萍鄉(xiāng) 江蘇 衢州 大理 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《chr(9)、chr(10)、chr(13)、chr(32)、chr(34)講解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    新余市| 盘锦市| 永顺县| 新竹市| 崇信县| 南川市| 兴安县| 阆中市| 鄯善县| 福鼎市| 秦安县| 绥中县| 金门县| 田东县| 丹棱县| 犍为县| 汉阴县| 静安区| 会昌县| 绥宁县| 察隅县| 嵩明县| 改则县| 庆阳市| 德兴市| 苏尼特右旗| 和平区| 略阳县| 商洛市| 望都县| 平遥县| 清远市| 驻马店市| 汾西县| 铜鼓县| 禄劝| 吉安市| 威海市| 宜宾市| 纳雍县| 五台县|