1、URL编码
遵循下列规则:
每对name/value由&;符分开;
每对来自表单的name/value由=符分开。
如果用户没有输入值给这个name,那么这个name还是出现,只是无值。
任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。
其实url编码就是一个字符编码的十六进制。不过稍微有些变动,需要在每个字节前面加上“%”。比如“\”,它的编码是92,92的十六进制是5c,所以“\”的url编码就是%5c。
一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址"http://www.abc.com",但是没有希腊字母的网址"http://www.aβγ.com"(读作阿尔法-贝塔-伽玛.com)。这是因为网络标准RFC 1738做了硬性规定:
"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not
including the quotes - ed], and reserved characters used for their
reserved purposes may be used unencoded within a URL."
"只有字母和数字[0-9a-zA-Z]、一些特殊符号"$-_.+!*'(),"[不包括双引号]、
以及某些保留字,才可以不经过编码直接用于URL。"
这意味着,如果URL中有汉字,就必须编码后使用。
关于URL编码
2、HTML 表单编码
enctype 属性指定浏览器如何编码数据并将其呈现给服务器。
此属性有三个允许值。
application/x-www-form-urlencoded
默认编码。
此编码无法用于将文件上传到服务器。
multipart/form-data
此编码用于将文件上传到服务器。
text/plain
此编码因浏览器而异。
application/x-www-form-urlencoded
如果使用 application / x-www-form-urlencoded 编码,每个数据项的名称和值都使用用于编码URL的相同方案进行编码。这是编码应用于示例形式的数据的方式:
fave=Apples&name=FiratName+LastName
特殊字符将替换为其HTML实体对应部分。数据项的名称和值由等号(=)分隔,数据/值元组由&符号(&)分隔。
multipart/form-data
multipart / form-data 编码往往仅用于上传文件。下面是示例表单中的数据如何编码:
multipart/plain
主流浏览器以不同的方式对该编码进行编码。
3、ASCII码表
ASCII码表
一开始最多只能表示128个字符,经过拓展后最多能表示256个字符。
ASCII(美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,
ASCII码大致可以分作三部分组成。
第一部分是:ASCII非打印控制字符
ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。例如,12代表换页/新页功能。此命令指示打印机跳到下一页的开头。
第二部分是:ASCII打印字符;
数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。数字127代表 DELETE 命令。(参详ASCII码表中32-127)
第三部分是:扩展ASCII打印字符
扩展的ASCII字符满足了对更多字符的需求。扩展的ASCII包含ASCII中已有的128个字符,又增加了128个字符,总共是256个。即使有了这些更多的字符,许多语言还是包含无法压缩到256个字符中的符号。因此,出现了一些ASCII的变体来囊括地区性字符和符号。例如,许多软件程序把ASCII表(又称作ISO8859-1)用于北美、西欧、澳大利亚和非洲的语言。