轉義字元串

轉義字元串

(Escape character),原本是指ASCII中的十進制27,十六進制1B,八進制033所定義的那個字元。對應於標準鍵盤左上角的ESC鍵。老式鍵盤如果沒有ESC鍵,替代輸入是“Ctrl+[”。在老式的計算機外設控制協定,ASCII碼的十進制27這個字元開始的一個字元序列,是外設的控制序列,不能按照這些字元的字面意義解釋。後來,就把最初的狹義的Escape character的含義引申開來,在各種計算機語言與協定中,標誌著一個轉義序列開始的那個字元,都叫做Escape character。最常見的一個例子是C程式設計語言中,用反斜線字元“\”作為轉義字元,來表示那些不可列印的ASCII控制符。在URI協定中,轉義字元是百分號“%”。

基本介紹

  • 中文名:轉義字元串
  • 外文名:Data Link Escape Character 
1英語解釋,字元表,字元型常量,2程式語言,3作用介紹,4顯示空格,5組成信息,6轉義符,7url,8如何避免,

1英語解釋

Data Link Escape Character 數據傳送換碼字元(通信控制用)
C語言轉義

字元表

所有的轉義字元和所對應的意義:
轉義字元
意義
ASCII碼值(十進制)
\a
響鈴(BEL)
007
\b
退格(BS) ,將當前位置移到前一列
008
\f
換頁(FF),將當前位置移到下頁開頭
012
\n
換行(LF) ,將當前位置移到下一行開頭
010
\r
回車(CR) ,將當前位置移到本行開頭
013
\t
水平制表(HT) (跳到下一個TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一個反斜線字元''\'
092
\'
代表一個單引號(撇號)字元
039
\"
代表一個雙引號字元
034
\0
空字元(NULL)
000
\ddd
1到3位八進制數所代表的任意字元
三位八進制
\xhh
1到2位十六進制所代表的任意字元
二位十六進制
注意:區分,斜槓:"/" 與 反斜槓:"\" ,此處不可互換

字元型常量

字元型常量所表示的值是字元型變數所能包含的值。大家可以用ASCII表達式來表示一個字元型常量,或者用單引號內加反斜槓表示轉義字元。
'A', '\x2f', '\013';
其中:\x表示後面的字元是十六進制數,\0表示後面的字元是八進制數。
注意:在Turbo C 2.0中,字元型常量表示數的範圍是-128到127,除非你把它聲明為unsigned,這樣就是0到255。
上面大家見到的\x,\n,\a等等都是叫轉義字元,它告訴編譯器需要用特殊的方式進行處理。

2程式語言

如HTML轉義符、java 轉義符、xml 轉義符、 oracle 轉義符、sql 轉義符 、sqlserver 轉義符、php 轉義符、asp 轉義符、vb轉義符、 javascript 轉義符等等,還有網址中的百分號
例如,HTML的<; >;&;";&copy;對別是<,>,&,",©;的轉義字元
XML只有5個轉義符: <; >;&; "; &apos;

3作用介紹

轉義字元串(Escape Sequence)也稱字元實體(Character Entity)。在HTML中,定義轉義字元串的原因有兩個:第一個原因是像“<”和“>”這類符號已經用來表示HTML標籤,因此就不能直接當做文本中的符號來使用。為了在HTML文檔中使用這些符號,就需要定義它的轉義字元串。當解釋程式遇到這類字元串時就把它解釋為真實的字元。在輸入轉義字元串時,要嚴格遵守字母大小寫的規則。第二個原因是,有些字元在ASCII字元集中沒有定義,因此需要使用轉義字元串來表示。
其實所有程式語言,擁有轉義字元的原因基本上是兩點:一、使用轉義字元來表示字元集中定義的字元,比如ASCll裡面的控制字元及回車換行等字元,這些字元都沒有現成的文字代號。所以只能用轉義字元來表示 。二、某一些特定的字元在編輯語言中被定義為特殊用途的字元。這些字元由於被定義為特殊用途,它們失去了原有的意義。比如說Html中,<被HTML定義為標籤的開始,所以當大家轉入<時,HTML就會把它當作為開始,而不是當作一個<來看待。再如PHP 的雙引號("),被PHP定義為字元串的外圍標籤,所以如果你在一對雙引號裡面,還想要使用雙引號,只能使用轉義字元了。不然PHP就會報錯了。
另外出於網站的安全。在數據寫入資料庫前,都會使用轉義字元(函式)對一些敏感字元進行轉義。這樣做可以避免一些別有用心的人利用特殊符號的注入攻擊。

4顯示空格

通常情況下,HTML會自動截去多餘的空格。不管你加多少空格,都被看做一個空格。比如你在兩個字之間加了10個空格,HTML會截去9個空格,只保留一個。為了在網頁中增加空格,你可以使用 &nbsp;表示空格。

5組成信息

轉義字元串( Escape Sequence),即 字元實體( Character Entity)分成三部分:第一部分是一個&符號,英文叫ampersand;第二部分是實體(Entity)名字或者是#加上實體(Entity)編號;第三部分是一個分號。
比如,要顯示小於號(<),就可以寫 <; 或者 < 。
用實體(Entity)名字的好處是比較好理解,一看lt,大概就猜出是less than的意思,但是其劣勢在於並不是所有的瀏覽器都支持最新的Entity名字。而實體(Entity)編號,各種瀏覽器都能處理。
提示:實體名稱(Entity)是區分大小寫的。
備註:同一個符號,可以用“實體名稱”和“實體編號”兩種方式引用,“實體名稱”的優勢在於便於記憶,但不能保證所有的瀏覽器都能順利識別它,而“實體編號”則沒有這種擔憂,但它實在不方便記憶。

6轉義符

轉義序列 字元
\b 退格
\f 走紙換頁
\n 換行
\r 回車
\t 橫向跳格 (Ctrl-I)
\' 單引號
特殊轉義字元列表

7url

web 開發中通過問號(?)方式在瀏覽器地址欄中傳值時。瀏覽器是通過“&”來區分問號後的參數個數的。 如果出現傳值參數中帶有“&”時,在接受頁面就會出現錯誤,類似如下請求路徑:/next.jsp?param1=hendhs89&furej & param2=sss
參數param1中含有轉義字元“&” ,這樣會導致被請求頁的參數接收錯誤。
在傳值前 通過 java.net.URLEncoder.encode(param1) 編碼處理後,可將轉義字元轉為16進制
1. + URL 中+號表示空格 %2B
2. 空格 URL中的空格可以用+號或者編碼 %20
3. / 分隔目錄和子目錄 %2F
4. ? 分隔實際的 URL 和參數 %3F
5. % 指定特殊字元%25
6. # 表示書籤 %23
7. & URL中指定的參數間的分隔設定%26
8. = URL中指定參數的值 %3D
9. ! URL中指定參數的值 %21
^ %5E
` %60
{ %7B
} %7D
| %7C
] %5D
[ %5B
" %22
< %3C
> %3E
\ %5

8如何避免

在編寫網頁時,如果直接在雙引號之間輸入路徑,其中的“\”及其之後的文本易被誤認為轉義字元。為避免這一點,只需在字元串的引號前加“@”符號(不包括外側引號)。如: @ "c:\ab\cd\ef.jpg" 。

相關詞條

熱門詞條

聯絡我們