URL编码、字符集

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)用于北美、西欧、澳大利亚和非洲的语言。
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值