小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

url中的特殊字符問題

 iversion 2007-11-28

在使用url進行參數(shù)傳遞時,經(jīng)常會傳遞一些中文名(或含有特殊字符)的參數(shù)或URL地址,在后臺處理時會發(fā)生轉換錯誤。在有些傳遞頁面使用GB2312,而在接收頁面使用UTF8,這樣接收到的參數(shù)就可能會與原來發(fā)生不一致。使用服務器端的urlEncode函數(shù)編碼的URL,與使用客戶端javascript的encodeURI函數(shù)編碼的URL,結果就不一樣。

javascript對文字進行編碼涉及3個函數(shù):escape,encodeURI,encodeURIComponent,相應3個解碼函數(shù):unescape,decodeURI,decodeURIComponent

因此,對于中文字符串來說,如果不希望把字符串編碼格式轉化成UTF-8格式的(比如原頁面和目標頁面的charset是一致的時候),只需要使用escape。如果你的頁面是GB2312或者其他的編碼,而接受參數(shù)的頁面是UTF-8編碼的,就要采用encodeURI或者encodeURIComponent。

1、  傳遞參數(shù)時需要使用encodeURIComponent,這樣組合的url才不會被#等特殊字符截斷。

   例如:<script language="javascript">document.write('<a >退出</a>');</script>

2、  進行url跳轉時可以整體使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

3、  js使用數(shù)據(jù)時可以使用escape

例如:搜藏中history紀錄。

4、  escape0-255以外的unicode值進行編碼時輸出%u****格式,其它情況下escapeencodeURI,encodeURIComponent編碼結果相同。

最多使用的應為encodeURIComponent,它是將中文、韓文等特殊字符轉換成utf-8格式的url編碼,所以如果給后臺傳遞參數(shù)需要使用encodeURIComponent時需要后臺解碼對utf-8支持(form中的編碼方式和當前頁面編碼方式相同)

escape不編碼字符有69個:*,+-,.,/@_,0-9,a-z,A-Z

encodeURI不編碼字符有82個:!,#,$,&',(,),*,+,,,-,./,:,;=,,@,_,~0-9,a-z,A-Z

encodeURIComponent不編碼字符有71個:!, '(),*-,.,_,~,0-9a-zA-Z

字符

特殊字符的含義

URL編碼

#

用來標志特定的文檔位置

%23

%

對特殊字符進行編碼

%25

&

分隔不同的變量值對

%26

+

在變量值中表示空格

%2B

/

表示目錄路徑

%2F

\

表示目錄路徑

%5C

=

用來連接鍵和值

%3D

表示查詢字符串的開始

%3F

空格

空格

%20

.

句號

%2E

:

冒號

%3A

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多