亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

URLs,URIs,Proxies和Passwords 解析

2019-11-18 11:29:33
字體:
來源:轉載
供稿:網友

類URLEncoder 和 類URLDecoder

web設計者面臨的眾多難題之一便是怎樣處理不同操作系統間的差異性。這些差異性能引起URL方面的問題:例如,一些操作系統答應文件名中含有空格符,有些又不答應。大多數操作系統不會認為文件名中含有符號“#”會有什么非凡含義;但是在一個URL中,符號“#”表示該文件名已經結束,后面會緊跟一個fragment(部分)標識符。其他的非凡字符,非字母數字字符集,它們在URL或另一個操作系統上都有其非凡的含義,表述著相似的問題。為了解決這些問題,我們在URL中使用的字符就必須是一個ASCII字符集的固定字集中的元素,具體如下:
1.大寫字母A-Z
2.小寫字母a-z
3.數字 0-9
4.標點符 - _ . ! ~ * ' (和 ,)

諸如字符: / & ? @ # ; $ + = 和 %也可以被使用,但是它們各有其非凡的用途,假如一個文件名包括了這些字符( / & ? @ # ; $ + = %),這些字符和所有其他字符就應該被編碼。

編碼過程非常簡單,任何字符只要不是ASCII碼數字,字母,或者前面提到的標點符,它們都將被轉換成字節形式,每個字節都寫成這種形式:一個“%”

后面跟著兩位16進制的數值。空格是一個非凡情況,因為它們太平常了。它除了被編碼成“%20”以外,還能編碼為一個“+”。加號(+)本身被編碼為%2B。當/ # = & 和?作為名字的一部分來使用時,而不是作為URL部分之間的分隔符來使用時,它們都應該被編碼。

WARNING這種策略在存在大量字符集的異構環境中效果不甚理想。例如:在U.S. Windows 系統中, é 被編碼為 %E9. 在 U.S. Mac中被編碼為%8E。這種不確定性的存在是現存的URI的一個明顯的不足。所以在將來URI的規范當中應該通過國際資源標識符(IRIs)進行改善。

類URL并不自動執行編碼或解碼工作。你能生成一個URL對象,它可以包括非法的ASCII和非ASCII字符和/或%xx。當用方法getPath() 和toExternalForm( ) 作為輸出方法時,這種字符和轉移符不會自動編碼或解碼。你應對被用來生成一個URL對象的字符串繁榮對象負責,確保所有字符都會被恰當地編碼。


幸運的是,java提供了一個類URLEncoder把string編碼成這種形式。Java1.2增加了一個類URLDecoder它能以這種形式解碼string。這兩個類都不用初始化

public class URLDecoder extends Object
public class URLEncoder extends Object



URLEncoder

在java1.3和早期版本中,類java.net.URLEncoder包括一個簡單的靜態方法encode( ) 它對string以如下規則進行編碼:
public static String encode(String s)
這個方法總是用它所在平臺的默認編碼形式,所以在不同系統上,它就會產生不同的結果。結果java1.4中,這個方法被另一種方法取代了。該方法要求你自己指定編碼形式:

public static String encode(String s, String encoding) 
  throws UnsupportedEncodingException



兩種關于編碼的方法,都把任何非字母數字字符轉換成%xx(除了空格,下劃線(_),連字符(—),句號(。),和星號(*))。
兩者也都編碼所以的非ASCII字符??崭癖晦D換成一個加號。這些方法有一點過分累贅了;它們—也把“~”,“‘”,“()”轉換成%xx,即使它們完全用不著這樣做。盡管這樣,但是這種轉換并沒被URL規范所禁止。所以web瀏覽器會自然地處理這些被過分編碼后的URL。

兩中關于編碼的方法都返回一個新的被編碼后的string,java1.3的方法encode( ) 使用了平臺的默認編碼形式,得到%xx。這些編碼形式典型的有:在 U.S. Unix 系統上的ISO-8859-1, 在U.S. Windows 系統上的Cp1252,在U.S. Macs上的MacRoman,和其他本地字符集等。因為編碼解碼過程都是與本地操作平臺相關的,所以這些方法是另人不爽的,不能跨平臺的。這就明確地回答了為什么在java1.4中這種方法被拋棄了,轉而投向了要求以自己指定編碼形式的這種方法。盡管如此,假如你執意要使用所在平臺的默認編碼形式,你的程序將會像在java1.3中的程序一樣,是本地平臺相關的。在另一種編碼的方法中,你應該總是事業UTF-8,而不是其他什么。UTF-8比起你選的其他的編碼形式來說,它能與新的web瀏覽器和更多的其他軟件相兼容。

例子7-8是使用URLEncoder.encode( ) 來打印輸出各種被編碼后的string。它需要在java1.4或更新的版本中編譯和運行。
Example 7-8. x-www-form-urlencoded strings

import java.net.URLEncoder;
import java.io.UnsupportedEncodingException;


public class EncoderTest {

  public static void main(String[] args) {

    try {
      System.out.PRintln(URLEncoder.encode("This string has spaces",  
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This*string*has*asterisks",  
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This%string%has%percent%signs",
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This+string+has+pluses",  
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This/string/has/slashes",  
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This/"string/"has/"quote/"marks",
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This:string:has:colons",  
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This~string~has~tildes",  
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This(string)has(parentheses)",
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This.string.has.periods",
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This=string=has=equals=signs",
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("This&string&has&ersands",
                                              "UTF-8"));
      System.out.println(URLEncoder.encode("Thiséstringéhasé
                                              non-ASCII characters", "UTF-8"));
    }
    catch (UnsupportedEncodingException ex) {
      throw new RuntimeException("Broken VM does not support UTF-8");
    }

  }

}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧洲日韩成人av| 综合136福利视频在线| 欧美日韩视频免费播放| 亚洲aⅴ男人的天堂在线观看| 亚洲欧美激情精品一区二区| 91影视免费在线观看| 欧美在线视频观看| 日韩毛片在线观看| 国产精品视频白浆免费视频| 亚洲第一国产精品| 日本亚洲欧美成人| 亚洲淫片在线视频| 精品高清美女精品国产区| 成人网页在线免费观看| 北条麻妃一区二区在线观看| 国产日韩欧美中文在线播放| 国产成人鲁鲁免费视频a| 粗暴蹂躏中文一区二区三区| 欧美激情一区二区三区高清视频| 日韩亚洲成人av在线| 色爱精品视频一区| 久久91亚洲精品中文字幕奶水| 日韩欧美黄色动漫| 精品伊人久久97| 久久久91精品国产| 日韩在线视频免费观看| 2024亚洲男人天堂| 成人中文字幕+乱码+中文字幕| 欧美日本中文字幕| 欧洲成人在线观看| 日韩免费av在线| 成人免费观看a| 性欧美在线看片a免费观看| 亚洲成人网在线观看| 动漫精品一区二区| 中文欧美日本在线资源| 91精品国产高清自在线| 日本精品久久中文字幕佐佐木| 日本成人黄色片| 国产精品jizz在线观看麻豆| 一本色道久久88综合亚洲精品ⅰ| 久久中文字幕在线| 日韩av电影在线播放| 亚洲电影免费观看高清完整版在线观看| 成人写真福利网| 国产精品日韩av| 久久久久国产精品www| 亚洲石原莉奈一区二区在线观看| 中文字幕日韩欧美在线视频| 主播福利视频一区| 亚洲美女视频网| 91久久国产精品91久久性色| 日韩美女视频免费看| 国产精品美女av| 欧洲美女7788成人免费视频| 亚洲国语精品自产拍在线观看| 456国产精品| 日韩av第一页| 国产欧美一区二区三区久久人妖| 日本一欧美一欧美一亚洲视频| 欧美性xxxxhd| 亚洲欧美精品中文字幕在线| 自拍视频国产精品| 久久久最新网址| 国产精品旅馆在线| 日韩在线中文字幕| 欧美激情18p| 日韩电影中文字幕一区| 亚洲电影av在线| 国产男女猛烈无遮挡91| 欧美日本高清视频| 精品呦交小u女在线| 亚洲一区二区黄| 欧美性xxxx极品高清hd直播| 美女福利视频一区| 精品成人乱色一区二区| 97精品久久久| 国产精品网站大全| 51ⅴ精品国产91久久久久久| 热久久视久久精品18亚洲精品| 91精品啪在线观看麻豆免费| 国产精品自拍偷拍视频| 国产精品久久久久久av福利软件| 日韩av在线最新| 国产精品亚洲片夜色在线| 日韩国产精品亚洲а∨天堂免| 综合欧美国产视频二区| 日韩精品视频三区| 精品视频中文字幕| 丝袜美腿精品国产二区| 91精品国产综合久久香蕉的用户体验| 欧美日韩国产精品专区| 色偷偷亚洲男人天堂| 成人免费网站在线观看| 九九综合九九综合| 国产精品精品视频一区二区三区| 中日韩美女免费视频网址在线观看| 亚洲人成电影网站色www| 国产综合香蕉五月婷在线| 亚洲人成绝费网站色www| 66m—66摸成人免费视频| 国内久久久精品| 亚洲男人天堂2019| 91黑丝高跟在线| 欧美电影免费观看电视剧大全| 啪一啪鲁一鲁2019在线视频| 国产精品扒开腿做爽爽爽的视频| 国产xxx69麻豆国语对白| 日本久久久久久久| 国产视频在线观看一区二区| 国产一区二区三区在线观看视频| 欧美一区三区三区高中清蜜桃| 亚洲成人av资源网| 国产精品欧美一区二区| 欧美日韩国产成人高清视频| 51精品国产黑色丝袜高跟鞋| 97视频在线看| 欧美性xxxxxx| 亚洲午夜性刺激影院| 日韩精品有码在线观看| 欧美老肥婆性猛交视频| 成人福利在线观看| 日韩最新中文字幕电影免费看| 亚洲国产成人精品电影| 7777kkkk成人观看| 日韩高清免费在线| 亚洲xxx自由成熟| 中文欧美在线视频| 国产91精品黑色丝袜高跟鞋| 亚洲免费人成在线视频观看| 亚洲片国产一区一级在线观看| 亚洲夜晚福利在线观看| 黑人巨大精品欧美一区二区一视频| 亚洲美女性生活视频| 成人av.网址在线网站| 一区二区三区四区在线观看视频| 亚洲在线视频观看| 欧美大尺度激情区在线播放| 亚洲一区亚洲二区| 久久亚洲国产成人| 亚洲欧美中文字幕在线一区| 91精品国产精品| 国产成人在线一区| 91精品视频网站| 亚洲欧美一区二区三区久久| 亚洲深夜福利视频| 亚洲免费一在线| 亚洲精品小视频在线观看| 国产精品成人一区二区三区吃奶| 亚洲欧美日韩第一区| 亚洲精品福利视频| 亚洲丁香婷深爱综合| 欧美激情视频给我| 久久久人成影片一区二区三区观看| 国产欧美久久久久久| 日韩有码在线视频| 久热99视频在线观看| 欧美大成色www永久网站婷| 日本一区二区三区在线播放| 国产精品日韩在线播放| 日韩一区视频在线| 亚洲男人的天堂在线播放| 日韩美女写真福利在线观看| 国产成人精品日本亚洲专区61|