url编码标准(HTML URL 编码)

:暂无数据 2026-05-03 04:00:02 0
大家好,url编码标准相信很多的网友都不是很明白,包括HTML URL 编码也是一样,不过没有关系,接下来就来为大家分享关于url编码标准和HTML URL 编码的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

HTML URL 编码


下面是用 URL 编码形式表示的 ASCII 字符(十六进制格式)。
十六进制格式用于在浏览器和插件中显示非标准的字母和字符。
URL 编码 - 从 %00 到 %8f
ASCII Value
URL-encode
ASCII Value
URL-encode
ASCII Value
URL-encode
%000%30`%60%011%31a%61%022%32b%62%033%33c%63%044%34d%64%055%35e%65%066%36f%66%077%37g%67backspace%088%38h%68tab%099%39i%69linefeed%0a:%3aj%6a%0b;%3bk%6b%0c%3cl%6cc return%0d=%3dm%6d%0e%3en%6e%0f?%3fo%6f%10@%40p%70%11A%41q%71%12B%42r%72%13C%43s%73%14D%44t%74%15E%45u%75%16F%46v%76%17G%47w%77%18H%48x%78%19I%49y%79%1aJ%4az%7a%1bK%4b{%7b%1cL%4c|%7c%1dM%4d}%7d%1eN%4e~%7e%1fO%4f%7fspace%20P%50

python中quote函数是什么意思,怎么用

屏蔽特殊的字符、比如如果url里面的空格!url里面是不允许出现空格的。

在 ***** 中的用法是:
*****(text)
***** 中是
*****(text)
按照标准, URL 只允许一部分 ASCII 字符(数字字母和部分符号),其他的字符(如汉字)是不符合 URL 标准的。
所以 URL 中使用其他字符就需要进行 URL 编码。
URL 中传参数的部分(query String),格式是:
name1=value1&name2=value2&name3=value3
假如你的 name 或者 value 值中有『&』或者『=』等符号,就当然会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码。
URL编码的方式是把需要编码的字符转化为 %xx 的形式。通常 URL 编码是基于 UTF-8 的(当然这和浏览器平台有关)。
例子:
比如『我』,unicode 为 0x6211, UTF-8 编码为 0xE6 0x88 0x91,URL 编码就是
%E6%88%91
在 JavaScript 中,提供了 encodeURI 和 encodeURIComponent 两种方法对 URL 进行编码;
Python 的 urllib 库中提供了 quote 和 quote_plus 两种方法。
因为是针对不同场景设计,以上四种方法编码的范围均不相同,比如 quote 除了 -._/09AZaz ,都会进行编码。quote_plus 比 quote 『更进』一些,它还会编码 /

我来教你如何将URL进行编码和解码

URL编码解码,又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是’20’,那么urlencode编码结果是:%20

1 为什么要URL编码

在因特网上传送URL,只能采用ASCII字符集,也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,即只有字母和数字、以及某些保留字(空格转换为+),才可以不经过编码直接用于URL。这意味着如果URL中有汉字,就必须编码后使用。 但是麻烦的是 标准的国际组织并没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。 这导致"URL编码"成为了一个混乱的领域。

2 如何URL编码解码

***隐藏网址***

***隐藏网址***

URL的井号及编码

一、#的涵义

代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,

就代表网页*****的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。

为网页位置指定标识符,有两个方法。一是使用锚点,比如《a name="print"》《/a》,二是使用id属性,比如《div id="print" 》。

二、HTTP请求不包括#

是用来指导浏览器动作的,对服务器端完全无用。所以,HTTP请求中不包括#。

比如,访问下面的网址,

浏览器实际发出的请求是这样的:

可以看到,只是请求*****,根本没有"#print"的部分。

三、#后的字符

在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。

比如,下面URL的原意是指定一个颜色值:

但是,浏览器实际发出的请求是:

可以看到,"#fff"被省略了。只有将#转码为%23,浏览器才会将其作为实义字符处理。也就是说,上面的网址应该被写成:

四、改变#不触发网页重载

单单改变#后的部分,浏览器只会滚动到相应位置,不会重新加载网页。

比如,从

改成

浏览器不会重新向服务器请求*****。

五、改变#会改变浏览器的访问历史

每一次改变#后的部分,都会在浏览器的访问历史中增加一个记录,使用"后退"按钮,就可以回到上一个位置。

这对于ajax应用程序特别有用,可以用不同的#值,表示不同的访问状态,然后向用户给出可以访问某个状态的链接。

值得注意的是,上述规则对IE 6和IE 7不成立,它们不会因为#的改变而增加历史记录。

六、*****读取#值

*****这个属性可读可写。读取时,可以用来判断网页状态是否改变;写入时,则会在不重载网页的前提下,创造一条访问历史记录。

七、onhashchange事件

这是一个HTML 5新增的事件,当#值发生变化时,就会触发这个事件。IE8+、Firefox ***+、Chrome 5+、Safari ***+支持该事件。

它的使用方法有三种:

对于不支持onhashchange的浏览器,可以用setInterval监控*****的变化。

八、Google抓取#的机制

默认情况下,Google的网络蜘蛛忽视URL的#部分。

但是,Google还 规定 ,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!",Google会自动将其后面的内容转成查询字符串 escaped_fragment 的值。

比如,Google发现新版twitter的URL如下:

就会自动抓取另一个URL:

通过这种机制,Google就可以索引动态的Ajax内容。


参考资料,详细

url如何编码解码为什么要编码

一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,这是因为网络标准 RFC 1738 做了硬性规定。如果URL中有汉字,就必须编码后使用。但是麻烦的是,RFC 1738没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定,这导致"URL编码"成为了一个混乱的领域。
四种导致混乱的情况:
网址路径中包含汉字
查询字符串包含汉字
Get方法生成的URL包含汉字
Ajax调用的URL包含汉字(在Ajax调用中,IE总是采用GB2312编码(操作系统的默认编码),而Firefox总是采用utf-8编码。)
综上所述,这个时候需要一种编码方法向服务器发送请求,而js则可以满足这一需求。

decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent() (一般使用encodeURI()和encodeURIComponent())

encodeURI()是Javascript中真正用来对URL编码的函数。它着眼于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。

它对应的解码函数是decodeURI()

与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。因此,"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。

它对应的解码函数是decodeURIComponent()。

encodeURIComponent比encodeURI编码的范围更大。
***隐藏网址***
如果你需要编码整个URL,然后需要使用这个URL,那么用encodeURI,否则使用encodeURIComponent。

URL中,什么字符需要编码

关于URL编码,RFC1738做了如下的规定:

“Only alphanumerics , the special characters “$-_.+!*’(),”
, and reserved characters used for their
reserved purposes may be used unencoded within a URL.”

RFC继而说明了保留字、特殊符号、不安全字符的含义——也就是说,下面三类字符可以不经过编码,直接出现在URL上:

  • 特殊字符:$-_.+!*’(),

  • 保留字符:&/:;=?@

  • 为了让我们思路更清晰,我们再总结一下,哪些字符必须要编码:

  • ASCII表中没有对应可显示字符的,例如汉字

  • 不安全字符,包括:#”%《》{}|\^`~

  • 不当做保留字符来使用的保留字符,即&/:;=?@

关于url编码标准的说明

***隐藏网址***
对字符串中除了 -_. 三个字符之外的所有非字母数字字符都替换成百分号(%)后跟两位十六进制数。

RFC-3986 中采用统一的编码方式,字符的编码格式为:%HH(H为十六进制字符), 并没有对空格做特殊处理。按照 RFC-3986 规范,空格被编码成%20,而加号"+"被编码成%2B。

编码方式是根据ContextType的不同而区别对待的,在form的ContextType是的时候会对form中的键/值对进行编码,空格被转义成+,其他字符按照 RFC1738 标准处理成%HH的形式。

返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号( % )后跟两位十六进制数,空格则编码为加号( + )。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 » RFC3986 编码(参见 rawurlencode() )不同。

URL 如何编码解码为什么要编码

原因很简单,因为 URL 只能使用 ASCII 字符集来通过因特网进行发送, 不支持中文!!不支持中文!!

在浏览器中的 URL 所展现的样式包含有中文字符,但是当你将这行 URL 复制粘贴时你就会发现,实际上的内容和你所看到的是不一样的。

所以说 URL 编码只是针对非英文字母、阿拉伯数字和某些标点符号起作用的。

URL 编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。

例如说我们有这样一条 URL : *****/你好?a=1&b=2 ,我们如何可以把它合法的在因特网中传播呢??

使用 encodeURIComponent(str) 这个方法来将 utf-8 的字符编码为合法的 URL 。

上面的那条网址合法的传输形式为 *****(’*****/你好?a=1&b=2’) 。

想要解码的时候只需要使用 decodeURIComponent(str) 这个方法就可以解码你所得到的
URL 。

同样还是刚才的网址,我们得到解码后的网址为 *****%2F%E4%BD%A0%E5%A5%BD%3Fa%**1%26b%**2 ,我们想要得到一个可读性比较高的网址,只需要 decodeURIComponent(’*****%2F%E4%BD%A0%E5%A5%BD%3Fa%**1%26b%**2’) 。

如果哪天所有字符都可以在因特网内直接发送的话,可能就不需要在对 URL 进行编码和解码了......

如何对 HTTP 请求中的字符编码进行正确的处理

1. 什么是URL编码。
URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上。
2. URL编码规则。
每对name/value由&分开,每对来自表单的name/value用=分开。如果用户没有输入值的那个name依旧会出现不过就是没有值。
URL编码是在字符ASCII码的十六进制数的前面加上%。例如\(她的十六进制数表示为5c)的URL编码就是%5c。
***隐藏网址***
其实做web开发乱码问题是经常出现的,有了上面编码的基础之后下面来看看乱码。
1) 乱码问题是web开发过程中经常遇到的问题,主要原因就是URL中使用了非ASCII码造成服务器后台程序解析出现乱码的问题。
2) URL中最容易出现中文的地方就是在QueryString的参数值还有Servletpath中。
***隐藏网址***
第一步:浏览器把URL经过编码送给服务器;
第二步:服务器把这些请求解码处理完毕之后将显示的内容进行编码发送给客户端浏览器;
第三步:浏览器按照指定的编码显示网页
4) 详细剖析GET提交如何编码以及服务器如何解码以及乱码解决方案
对于GET方式,我们知道它的提交是将请求数据附加到URL后面作为参数,这样依赖乱码就会很容易出现,因为数据name和value很有可能就是传递的为非ASCII码。
当URL拼接后,浏览器对其进行encode,然后发送到服务器。具体规则见URL编码规则。
这里详细说一下encode的过程中容易出现的问题,在这个过程中我们要明白需要URL encode的字符一般都是非ASCII码字符,所以我们就能知道出现乱码主要是URL中附加了中文或特殊字符做成的,另一个要知道URL encode到底是以什么样的编码方式对字符进行编码的,其实这个编码方式是由浏览器决定的,不同的浏览器和同一浏览器的不同设置影响了URL的编码,所以为了避免我们不需要的编码,我们可以通过java代码或javaspcript代码统一进行控制。
完成了URL encode之后URL就成了ASCII范围内的字符了,然后就以iso-8859-1的编码方式转换为二进制随着请求头一起发送出去。
到了服务器之后,首先服务器会先用iso-8859-1进行解码,服务器获取的数据都是ASCII范围内的请求头字符,其中请求URL里面带有参数数据,如果是中卫或特殊字符,那么encode后的%XY(编码规则中的十六进制数)通过*****()是不管用的。这时候我们就能发现出现乱码的根本原因就是客户端一般是通过用UTF-8或GBK等对数据进行encode的,到了服务器却用iso-8859-1方式decoder显然不行。
这里的解决方式有两种,
一种:是通过String类的getBytes方法进行编码转换,具体java代码是:
new String(*****(“name”).getBytes(“iso-8859-1”),“客户端编码方式”)
第二种:在服务器xml代码中改配置信息:
《Connector port="8080"protocol="HTTP/***" maxThreads="150" connectionTimeout="20000"
redirectPort="8443"URIEncoding="客户端编码"/》
5) 详细剖析POST提交如何编码以及服务器如何解码以及乱码解决方案
对于POST方式,表单中的参数值对是通过request包发送给服务器,此时浏览器会根据网页的ContentType("text/html; charset=GBK")中指定的编码进行对表单中的数据进行编码,然后发给服务器。
在服务器端的程序中我们可以通过
*****()设置编码,然后通过
*****获得正确的数据。
这里出现乱码可以通过*****()直接解决。

希望这篇关于url编码标准的指南,特别是HTML URL 编码部分,能成为你解决问题的得力工具。
本文编辑:admin

更多文章:


随机数字记忆(二进制数字记忆)

随机数字记忆(二进制数字记忆)

承接之前对随机数字记忆的讨论,本篇我们将视角下沉,专门来聊聊实操中无法回避的二进制数字记忆问题,让知识落地。

2026年5月3日 05:40

switch语句的要求(switch语句中怎么规定条件)

switch语句的要求(switch语句中怎么规定条件)

有没有这种经历:明明想搞懂switch语句的要求,却被switch语句中怎么规定条件卡住了脖子?今天这篇文章,就是专治这种“卡脖子”问题的。

2026年5月3日 05:20

爱代码怎么样?源代码哪个平台可以看

爱代码怎么样?源代码哪个平台可以看

独爱源码的背后,隐藏着怎样的秘密?爱代码怎么样又在其中扮演了何种角色?带着疑问,我们一起探秘。

2026年5月3日 05:00

javascript var(js中的var是什么意思)

javascript var(js中的var是什么意思)

读懂本文,您将不仅了解javascript var是什么,更能洞悉js中的var是什么意思背后的逻辑,从而举一反三。

2026年5月3日 04:40

acti***的中文意思(acti***speaklouderthanwords这是什么意思)

acti***的中文意思(acti***speaklouderthanwords这是什么意思)

这篇文章给大家聊聊关于acti***的中文意思,以及acti***speaklouderthanwords这是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年5月3日 04:20

url编码标准(HTML URL 编码)

url编码标准(HTML URL 编码)

大家好,url编码标准相信很多的网友都不是很明白,包括HTML URL 编码也是一样,不过没有关系,接下来就来为大家分享关于url编码标准和HTML URL 编码的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

2026年5月3日 04:00

cnc编程教程入门教程自学视频(求CNC数控编程教程(视频))

cnc编程教程入门教程自学视频(求CNC数控编程教程(视频))

本篇文章给大家谈谈cnc编程教程入门教程自学视频,以及求CNC数控编程教程(视频)对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年5月3日 03:40

两列瀑布流布局(瀑布流是什么)

两列瀑布流布局(瀑布流是什么)

本文是您理解两列瀑布流布局的最后一站。我们将通过剖析瀑布流是什么,帮你打通任督二脉,彻底领悟。

2026年5月3日 03:20

c***t char 和char(char * 和 c***t char * 有什么区别)

c***t char 和char(char * 和 c***t char * 有什么区别)

回顾我学习c***t char 和char的经历,char * 和 c***t char * 有什么区别可算是一个重要的转折点。正是搞懂了它,一切才变得顺畅起来。

2026年5月3日 03:00

emergent(emergency的形容词是什么)

emergent(emergency的形容词是什么)

emergent的背后,隐藏着怎样的秘密?emergency的形容词是什么又在其中扮演了何种角色?带着疑问,我们一起探秘。

2026年5月3日 02:40

最近更新

随机数字记忆(二进制数字记忆)
2026-05-03 05:40:03 浏览:0
javascript var(js中的var是什么意思)
2026-05-03 04:40:03 浏览:0
acti***的中文意思(acti***speaklouderthanwords这是什么意思)
2026-05-03 04:20:04 浏览:0
url编码标准(HTML URL 编码)
2026-05-03 04:00:02 浏览:0
两列瀑布流布局(瀑布流是什么)
2026-05-03 03:20:02 浏览:0
c***t char 和char(char * 和 c***t char * 有什么区别)
2026-05-03 03:00:02 浏览:0
emergent(emergency的形容词是什么)
2026-05-03 02:40:02 浏览:0
热门文章

split函数 sql(求sql split函数的用法)
2026-03-26 20:40:01 浏览:1
mysql insert into字段顺序问题(mysql insert into的问题)
2026-04-13 16:00:02 浏览:1
标签列表