web開發中特殊字元的對應值與轉義字元
URL中的特殊字元
URL中的特殊字元是不能再URL中直接傳遞的,需要進行編碼。編碼的格式為:%加字元的ASCII碼,即一個百分號%,後面跟對應字元的ASCII(16進位制)碼值。
字元 |
名稱 |
16進位制值 |
+ |
URL中的+表示空格 |
%2B |
空格 |
URL中的空格可以用+號或者編碼 |
%20 |
/ |
分割目錄和子目錄 |
%2F |
? |
分隔實際的URL和字元 |
%3F |
% |
指定特殊字元 |
%25 |
# |
表示書籤,URL傳輸引數時會自動截斷#後面內容 |
%23 |
& |
URL中的引數分隔符 |
%26 |
= |
UEL中指定的引數值 |
%3D |
例:要傳遞字串“this%is#te=st&o k?+/”作為引數t傳給te.asp,則URL可以是:
te.asp?t=this%25is%23te%3Dst%26o%20k%3F%2B%2F 或者
te.asp?t=this%25is%23te%3Dst%26o+k%3F%2B%2F (空格可以用%20或+代替)
java中URL 的編碼和解碼函式:
java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);
在javascript 中URL 的編碼和解碼函式分別是escape(String s)和unescape(String s) ;
HTML中的需要轉義字元
字元 |
轉義字元 |
描述 |
& |
& |
和 |
< |
< |
小於號 |
> |
> |
大於號 |
“ |
" |
雙引號 |
‘ |
' |
單引號 |
空格 |
|
空格 |
© |
© |
版權符 |
® |
® |
註冊符 |
前者為字元轉義序列,後者為數字轉義序列。數字轉為字元對應的ASCII碼值。例如 & lt; font >顯示為,<font>,若直接寫為則被認為是一個連結籤。
需要說明的是:
a. 轉義序列各字元間不能有空格;
b. 轉義序列必須以";"結束;
c. 單獨的&不被認為是轉義開始;
d.區分大小寫。
另一個需要轉義的字元是引號,它的轉義序列為"" "或"""
HTML使用的字符集是ISO &859 Larin-1字符集,該字符集中有許多標準鍵盤上無法輸入的字元。對這些特殊字元只能使用轉義序列。
XML中的特殊字元
字元 |
轉義字元 |
描述 |
& |
& |
和 |
< |
< |
小於號 |
> |
> |
大於號 |
“ |
" |
雙引號 |
‘ |
' |
單引號 |
不合法的XML字元必須被轉義,如果在XML文件中使用類似"<" 的字元, 那麼解析器將會出現錯誤,因為解析器會認為這是一個新元素的開始。所以不應該像下面那樣書寫程式碼:
<message>if salary < 1000 then</message>
為了避免出現這種情況,必須將字元"<" 轉換成實體,像下面這樣:
<message>if salary < 1000 then</message>
Javascript中的轉義字元
轉義序列 |
字元 |
\b |
退格 |
\f |
走紙換頁 |
\n |
換行 |
\r |
回車 |
\t |
橫向跳格 |
\” |
雙引號 |
\’ |
單引號 |
\\ |
反斜槓 |
var txt=”We are the so-called “Vikings” from the north.”
document.write(txt)
在JavaScript中,字串以雙引號或單引號開始和結束。 這就意味著上面的字串會被砍為: We are the so-called
要解決這個問題,需要在Viking前後的雙引號前面加上反斜槓 (\),這樣就把每一個雙引號轉換為了一個字串文字:
var txt=”We are the so-called \”Vikings\” from the north.”
document.write(txt)
現在JavasScript可以正確顯示字串:We are the so-called “Vikings” from the north.
這裡是另外一個例子:
document.write (“You \& me are singing!”)
上面的例子將產生以下輸出:
You & me are singing!
Cookie中的特殊字元
版本0 : 由Netscape公司制定的,也被幾乎所有的瀏覽器支援. Java中為了保持相容性, 目前只支援到版本0, Cookie的內容中不能空格,方括號,圓括號,等於號(=),逗號,雙引號,斜槓,問號,@符號,冒號,分號。
版本1 : 根據RFC 2109(http://www.ietf.org/rfc/rfc2109.txt)文件制定的. 放寬了很多限制. 上面所限制的字元都可以使用. 但為了保持相容性, 應該儘量避免使用這些特殊字元。