【Java】url encode

什麼是url encode?

url是一種資源定位符號,用於標識一個資源。url產生之初的一個想法是讓url可以方便得傳遞,所以url的字符被限定ASCII碼的一個集合內,這些被稱爲非限定字符集。

除此之外,還有一些字符具有特定功能,比如query參數需要?來連接url和參數。多個參數需要用&來拼接等等。這些功能性的字符被稱爲保留字符。

關於這些保留字符的含義,參見:https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97%E7%AC%A6
裏面定義了url的規範及各個保留字符的含義。

 

爲什麼需要encode?

主要有兩個原因:

1.將不在非保留字符集內的字符編碼爲保留字符集內的。比如中文等。中文無法被直接編碼至url中,需要經過encode。大致流程就是將字節流轉換爲對應的16進制串,再在每一個16進制前加一個百分號。

2.如果url內容包含保留字符,則也需要進行encode,比如一個query參數是abc&d,那麼如果直接拼在url中,這個參數會被截斷爲abc。所以,url encode其實是對url中的component進行的而非url的全部。

https://en.wikipedia.org/wiki/URL

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