何时需要做urlEncode,以及为什么要做
在RFC1738中,對(duì)于URL可以使用的字符集做了如下規(guī)定:
“
只有0-9a-zA-Z的字母以及$-_.+!*'(),"這幾個(gè)特殊字符
”
而在html4中擴(kuò)展了所有的unicode character set能夠在url中使用。
那么到底有哪些字符需要encoded呢?
1. ascii control characters
原因是:他們不可打印,
字符范圍iso-8859-1的00-1F 以及7F
2. non-ascii characters:
原因:這些字符因?yàn)椴辉赼scii集合中不被認(rèn)為在url中是合法的
字符范圍: iso-latin的80-FF范圍
3. reserved characters:
原因:URL使用部分預(yù)留的字符來定義url的語(yǔ)法。當(dāng)這些字符在url中不被當(dāng)作其特殊角色時(shí),他們必須被encoded
字符范圍: $, &,+, , /,:,;,=,?,@
| Character | Code Points (Hex) |
Code Points (Dec) |
|---|---|---|
| Dollar ("$") Ampersand ("&") Plus ("+") Comma (",") Forward slash/Virgule ("/") Colon (":") Semi-colon (";") Equals ("=") Question mark ("?") 'At' symbol ("@") |
24 26 2B 2C 2F 3A 3B 3D 3F 40 |
36 38 43 44 47 58 59 61 63 64 |
4.unsafe characters
原因: 部分字符如果在url中可能導(dǎo)致歧義。這些字符也必須被encoded:
| Character | Code Points (Hex) |
Code Points (Dec) |
Why encode? |
|---|---|---|---|
| Space | 20 | 32 | Significant sequences of spaces may be lost in some uses (especially multiple spaces) |
| Quotation marks 'Less Than' symbol ("<") 'Greater Than' symbol (">") |
22 3C 3E |
34 60 62 |
These characters are often used to delimit URLs in plain text. |
| 'Pound' character ("#") | 23 | 35 | This is used in URLs to indicate where a fragment identifier (bookmarks/anchors in HTML) begins. |
| Percent character ("%") | 25 | 37 | This is used to URL encode/escape other characters, so it should itself also be encoded. |
| Misc. characters: Left Curly Brace ("{") Right Curly Brace ("}") Vertical Bar/Pipe ("|") Backslash ("") Caret ("^") Tilde ("~") Left Square Bracket ("[") Right Square Bracket ("]") Grave Accent ("`") |
7B 7D 7C 5C 5E 7E 5B 5D 60 |
123 125 124 92 94 126 91 93 96 |
Some systems can possibly modify these chara |
如何做url encoded呢?
url encoding of a character包含一個(gè)%號(hào),并且以iso-latin的16進(jìn)制兩位數(shù)來跟進(jìn)
例如:
space = %20
使用javascript的
encodeURIComponent 函數(shù)來實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的何时需要做urlEncode,以及为什么要做的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦江湖门派任务怎么做 长生门怎么解锁
- 下一篇: SAP Fiori 1.0 Migrat