URL 编码

URL 统一资源定位器(Uniform Resource Locator)

Web 浏览器使用 URL 从 Web 服务器请求页面。

URL 是网页的地址。比如:https://sankgao.github.ioopen in new window。# URL 编码(百分比编码)

URL 编码将 字符 转换为可通过因特网传输的格式。

URL 只能使用 ASCII 字符集 通过因特网进行发送。

由于 URL 通常包含 ASCII 字符集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。

URL 编码使用后跟 十六进制 数字的 % 替代不安全的 ASCII 字符。

URL 不能包含空格。URL 编码通常使用加号(+)或(%20)替代空格。

例如:点击下面的 “提交” 按钮,浏览器将对输入进行 URL 编码,然后再将其发送到服务器。服务器上的页面将显示收到的输入。演示

提交

请尝试其他的输入,然后再次点击提交。# URL 编码函数

在 JavaScript、PHP 和 ASP 中,有一些函数可用于对字符串进行 URL 编码。

PHP 有 rawurlencode() 函数,而 ASP 有 Server.URLEncode() 函数。

在 JavaScript 中,您可以使用 encodeURIComponent() 函数。

例如:点击下面的 “URL 编码” 按钮,来查看 JavaScript 函数如何编码文本。演示

试一试

function myFunction() {

var x = document.getElementById("myText").value;

document.getElementById("demo").innerHTML = encodeURIComponent(x);

}

JavaScript 函数把空格编码为 %20# ASCII 编码

浏览器将根据页面中使用的字符集对输入进行编码。字符来自 Windows-1252来自 UTF-8space%20%20!%21%21"%22%22#%23%23$%24%24%%25%25&%26%26'%27%27(%28%28)%29%29*%2A%2A+%2B%2B,%2C%2C-%2D%2D.%2E%2E/%2F%2F0%30%301%31%312%32%323%33%334%34%345%35%356%36%367%37%378%38%389%39%39:%3A%3A;%3B%3B%3E%3E?%3F%3F@%40%40A%41%41B%42%42C%43%43D%44%44E%45%45F%46%46G%47%47H%48%48I%49%49J%4A%4AK%4B%4BL%4C%4CM%4D%4DN%4E%4EO%4F%4FP%50%50Q%51%51R%52%52S%53%53T%54%54U%55%55V%56%56W%57%57X%58%58Y%59%59Z%5A%5A[%5B%5B%5C%5C]%5D%5D^%5E%5E_%5F%5F`%60%60a%61%61b%62%62c%63%63d%64%64e%65%65f%66%66g%67%67h%68%68i%69%69j%6A%6Ak%6B%6Bl%6C%6Cm%6D%6Dn%6E%6Eo%6F%6Fp%70%70q%71%71r%72%72s%73%73t%74%74u%75%75v%76%76w%77%77x%78%78y%79%79z%7A%7A{%7B%7B%7C}%7D%7D~%7E%7E%7F%7F`%80%E2%82%AC%81%81‚%82%E2%80%9Aƒ%83%C6%92„%84%E2%80%9E…%85%E2%80%A6†%86%E2%80%A0‡%87%E2%80%A1ˆ%88%CB%86‰%89%E2%80%B0Š%8A%C5%A0‹%8B%E2%80%B9Œ%8C%C5%92%8D%C5%8DŽ%8E%C5%BD%8F%8F%90%C2%90‘%91%E2%80%98’%92%E2%80%99“%93%E2%80%9C”%94%E2%80%9D•%95%E2%80%A2–%96%E2%80%93—%97%E2%80%94˜%98%CB%9C™%99%E2%84š%9A%C5%A1›%9B%E2%80œ%9C%C5%93%9D%9Dž%9E%C5%BEŸ%9F%C5%B8%A0%C2%A0¡%A1%C2%A1¢%A2%C2%A2£%A3%C2%A3¤%A4%C2%A4¥%A5%C2%A5¦%A6%C2%A6§%A7%C2%A7¨%A8%C2%A8©%A9%C2%A9ª%AA%C2%AA«%AB%C2%AB¬%AC%C2%AC­%AD%C2%AD®%AE%C2%AE¯%AF%C2%AF°%B0%C2%B0±%B1%C2%B1²%B2%C2%B2³%B3%C2%B3´%B4%C2%B4µ%B5%C2%B5¶%B6%C2%B6·%B7%C2%B7¸%B8%C2%B8¹%B9%C2%B9º%BA%C2%BA»%BB%C2%BB¼%BC%C2%BC½%BD%C2%BD¾%BE%C2%BE¿%BF%C2%BFÀ%C0%C3%80Á%C1%C3%81Â%C2%C3%82Ã%C3%C3%83Ä%C4%C3%84Å%C5%C3%85Æ%C6%C3%86Ç%C7%C3%87È%C8%C3%88É%C9%C3%89Ê%CA%C3%8AË%CB%C3%8BÌ%CC%C3%8CÍ%CD%C3%8DÎ%CE%C3%8EÏ%CF%C3%8FÐ%D0%C3%90Ñ%D1%C3%91Ò%D2%C3%92Ó%D3%C3%93Ô%D4%C3%94Õ%D5%C3%95Ö%D6%C3%96×%D7%C3%97Ø%D8%C3%98Ù%D9%C3%99Ú%DA%C3%9AÛ%DB%C3%9BÜ%DC%C3%9CÝ%DD%C3%9DÞ%DE%C3%9Eß%DF%C3%9Fà%E0%C3%A0á%E1%C3%A1â%E2%C3%A2ã%E3%C3%A3ä%E4%C3%A4å%E5%C3%A5æ%E6%C3%A6ç%E7%C3%A7è%E8%C3%A8é%E9%C3%A9ê%EA%C3%AAë%EB%C3%ABì%EC%C3%ACí%ED%C3%ADî%EE%C3%AEï%EF%C3%AFð%F0%C3%B0ñ%F1%C3%B1ò%F2%C3%B2ó%F3%C3%B3ô%F4%C3%B4õ%F5%C3%B5ö%F6%C3%B6÷%F7%C3%B7ø%F8%C3%B8ù%F9%C3%B9ú%FA%C3%BAû%FB%C3%BBü%FC%C3%BCý%FD%C3%BDþ%FE%C3%BEÿ%FF%C3%BF# URL 编码

ASCII 控制字符 %00-%1F 最初旨在控制硬件设备。

控制字符与 URL 无关。ASCII 字符描述URL-encodingNULnull character%00SOHstart of header%01STXstart of text%02ETXend of text%03EOTend of transmission%04ENQenquiry%05ACKacknowledge%06BELbell (ring)%07BSbackspace%08HThorizontal tab%09LFline feed%0AVTvertical tab%0BFFform feed%0CCRcarriage return%0DSOshift out%0ESIshift in%0FDLEdata link escape%10DC1device control 1%11DC2device control 2%12DC3device control 3%13DC4device control 4%14NAKnegative acknowledge%15SYNsynchronize%16ETBend transmission block%17CANcancel%18EMend of medium%19SUBsubstitute%1AESCescape%1BFSfile separator%1CGSgroup separator%1DRSrecord separator%1EUSunit separator%1F