Web開發中特殊字符的處理

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 &gt;顯示爲,<font>,若直接寫爲則被認爲是一個鏈接籤。

需要說明的是:

a. 轉義序列各字符間不能有空格;

b. 轉義序列必須以";"結束;

c. 單獨的&不被認爲是轉義開始;

d.區分大小寫。

另一個需要轉義的字符是引號,它的轉義序列爲"" "或"""

HTML使用的字符集是ISO &859 Larin-1字符集,該字符集中有許多標準鍵盤上無法輸入的字符。對這些特殊字符只能使用轉義序列。

XML中的特殊字符

字符

轉義字符

描述

&

&amp;

&lt;

小於號

&gt;

大於號

&quot;

雙引號

&apos;

單引號

不合法的XML字符必須被轉義,如果在XML文檔中使用類似"<" 的字符, 那麼解析器將會出現錯誤,因爲解析器會認爲這是一個新元素的開始。所以不應該像下面那樣書寫代碼:

<message>if salary < 1000 then</message>

爲了避免出現這種情況,必須將字符"<" 轉換成實體,像下面這樣:

<message>if salary &lt; 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)文檔制定的放寬了很多限制上面所限制的字符都可以使用但爲了保持兼容性應該儘量避免使用這些特殊字符。

 

參考鏈接:http://user.qzone.qq.com/544547876/blog/1337594923

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章