美国银联atmm机,怎么输入蜜码,我看图片输入蜜码

url为什么要编码 - 简书
url为什么要编码
以iOS编程为例,每当我们从服务器获得到一个链接需要分析链接的组成,或者在捕捉本地网路请求作出响应判断的时候,我们经常需要对URL进行解码和编码。那么为什么要进行解码和编码呢。比如有一个需求,你需要截取webveiw请求来实现一些操作。那么此时我们就需要从请求到的url中获取一些参数。url:?canshu1=zhi1&canshu2=zhi2我们从url中获取参数值的方法是从=后获取值,针对这个链接,我们从链接中获取参数。有两种情况1.参数有两个canshi1 canshu2,值分别是zhi1和zhi22.参数只有一个canshu1 值为zhi1&canshu2=zhi2显然造成了歧义为了避免歧义,我们需要就必须要讲值中的“=”或者“&”等特殊符号用其他符号代替,防止对=后面取值的方式造成影响,这个代替过程就是编码。以情况2为例子,此处有一个参数canshu1,其值是“zhi1&canshu2=zhi2”,进行URL的utf8编码后得到zhi1%26canshu2%3Dzhi2,将编码后的值放入链接?canshu1=zhi1%26canshu2%3Dzhi2于是拿到编码后链接的人解析,就直接取=后面的值作为canshu1的值,得到值为zhi1%26canshu2%3Dzhi2,然后对“zhi1%26canshu2%3Dzhi2”进行解码(需要用和编码同样的方式,一般有UTF8和gb2312)得到值“zhi1&canshu2=zhi2”,完全正确。注意:如果值中有%26则也会被转化成%2626也不会造成歧义。您的位置: >
URL如何编码与解码
学习标签:
本文导读:URL网址中如果遇到路径中包含汉字、URL查询字符串包含汉字、Get方法生成的URL包含汉字、Ajax调用的URL包含汉字时,就需要对URL进行编码和解码,下面简单介绍如何对URL编码与解码。
首先介绍我们通常见到的几种URL需要编码和解码的情况:
1、网址路径中包含汉字
例如 &url/wiki/春节 注意,&春节&这两个字此时是网址路径的一部分。
查看HTTP请求的头信息,会发现IE实际查询的网址是&url/wiki/%E6%98%A5%E8%8A%82&。也就是说,IE自动将&春节&编码成了&%E6%98%A5%E8%8A%82&。
我们知道,&春&和&节&的utf-8编码分别是&E6 98 A5&和&E8 8A 82&,因此,&%E6%98%A5%E8%8A%82&就是按照顺序,在每个字节前加上%而得到的
2、查询字符串包含汉字
例如 ur/s?wd=春节. 注意,&春节&这两个字此时属于查询字符串,不属于网址路径,不要与情况1混淆。
查看HTTP请求的头信息,会发现IE将&春节&转化成了一个乱码。切换到十六进制方式,才能清楚地看到,&春节&被转成了&B4 BA BD DA&。
3、Get方法生成的URL包含汉字
前面说的是直接输入网址的情况,但是更常见的情况是,在已打开的网页上,直接用Get或Post方法发出HTTP请求。
这时的编码方法由网页的编码决定,也就是由HTML源码中字符集的设定决定。
  &meta http-equiv=&Content-Type& content=&text/charset=xxxx&&
如果上面这一行最后的charset是UTF-8,则URL就以UTF-8编码;如果是GB2312,URL就以GB2312编码。
举例来说,百度是GB2312编码,Google是UTF-8编码。因此,从它们的搜索框中搜索同一个词&春节&,生成的查询字符串是不一样的。
百度生成的是%B4%BA%BD%DA,这是GB2312编码。
Google生成的是%E6%98%A5%E8%8A%82,这是UTF-8编码。
用JS对URL进行编码和解码&
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。
1 escape()函数
定义和用法
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
escape(string)
string 必需。要被转义或编码的字符串。
已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。
2 encodeURI()函数
定义和用法
encodeURI() 函数可把字符串作为 URI 进行编码。
encodeURI(URIstring)
URIstring 必需。一个字符串,含有 URI 或其他要编码的文本。
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
3 encodeURIComponent() 函数
定义和用法
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
encodeURIComponent(URIstring)
URIstring 必需。一个字符串,含有 URI 组件或其他要编码的文本。
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
提示和注释
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。
用asp.net 对URL进行编码和解码
用System.Web.HttpUtility.UrlEncode编码:
string tmp1 = System.Web.HttpUtility.UrlEncode(&.net技术&, System.Text.Encoding.GetEncoding(&GB2312&));
string tmp2 = System.Web.HttpUtility.UrlEncode(&.net技术&, System.Text.Encoding.UTF8);
用System.Web.HttpUtility.UrlDecode 或者 Server.UrlEncode& 相应的进行解码
您可能感兴趣
一月好评排行榜西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ URL是什么意思?关于URL编码
类型:网络工具大小:8KB语言:中文 评分:5.0
URL是统一资源定位符(URL,英语UniformResourceLocator的缩写)也被称为网页地址,是因特网上标准的资源的地址。它最初是由蒂姆?伯纳斯-李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。url是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。& Internet互联网上的每一个网页都具有一个唯一的名称标识,通常称之为URL地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,还可以是网页程序或者应用软件内部地址的指向标识。但更多的是指Internet上的站点。简单地说,URL就是Web地址、& 我们在访问某个网站的时候,他在地址上出现的就是该网站的URL网址了,仔细发现一般都是http开头占大多数,这就是我们所谓的URL格式呢。URL一般是由协议类型、主机名和路径及文件名组成的。而制定的主要由以下几种:http、ftp、gogher、telnet、file等。一般URL不一定全部是字母,数字也是可以作为URL的。只是用的人少,因为数字让你记起来比较麻烦。URL的格式URL的格式由下列三部分组成: 第一部分是协议(或称为服务方式); 第二部分是存有该资源的主机IP地址(有时也包括端口号); 第三部分是主机资源的具体地址。,如目录和文件名等。 第一部分和第二部分之间用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。URL示例 文件的URL: 用URL表示文件时,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即目录)和文件名等信息。有时可以省略目录和文件名,但“/”符号不能省略。 例一:file:///pub/files/foobar.txt 代表存放主机上的pub/files/目录下的一个文件,文件名是foobar.txt。 例二:file:///pub 代表主机上的目录/pub。 例三:file:/// 代表主机上的根目录。 Gopher的URL: Gopher服务器有可能使用特殊的端口,在这种情况下,主机IP地址与端口之间要用“:隔开。 例一:gopher:/// 表示主机上的gopher服务器。 例二:gopher://gopher.banzai.edu:1234 表示主机gopher.banzai.edu上的gopher服务器,在端口1234上。网络新闻的URL: 利用URL表示网络新闻组时,如果是usenet的话只要指定出新闻组的名字即可。 例如:news:rec.gardening 表示usenet上的rec.gardening新闻组。 HTTP的 URL: 使用超级文本传输协议HTTP,提供超级文本信息服务的资源。 例一:/111/welcome.htm 其计算机域名为。超级文本文件(文件类型为.html)是在目录/111下的welcome.htm。 例二:.cn/talk/talk1.htm 其其计算机域名为.cn。超级文本文件(文件类型为.html)是在目录/talk下的talk1.htm。这是瑞得的地址,可由此进入瑞得聊天室的第1室。 URL的缺点 最大的缺点:当信息资源的存放地点发生变化时,必须对URL作相应的改变。因此人们正在研究新的信息资源表示方法,例如:URI(Universal Resource Identifier)即“通用资源标识”(参见RFC 1630)、URN(Uniform Resource Name)即“统一资源名”和URC(Uniform Resource Citation)即“统一资源引用符”等。关于URL一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。这意味着,如果URL中有汉字,就必须编码后使用。但是麻烦的是,RFC 1738没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。这导致“URL编码”成为了一个混乱的领域。下面就让我们看看,“URL编码”到底有多混乱。我会依次分析四种不同的情况,在每一种情况中,浏览器的URL编码方法都不一样。把它们的差异解释清楚之后,我再说如何用Javascript找到一个统一的编码方法。
05-3112-0305-1201-0903-2101-1201-0811-3001-2701-21
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载转载:为什么要对URI进行编码
为什么需要Url编码,通常如果一样东西需要编码,说明这样东西并不适合传输。原因多种多样,如Size过大,包含隐私数据,对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。
例如Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码。
又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文。否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成问题。
&Url编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。
哪些字符需要编码
RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。
RFC3986文档对Url的编解码问题做出了详细的建议,指出了哪些字符需要被编码才不会引起Url语义的转变,以及对为什么这些字符需要编码做出了相应的解释。
US-ASCII字符集中没有对应的可打印字符
Url中只允许使用可打印字符。US-ASCII码中的10-7F字节全都表示控制字符,这些字符都不能直接出现在Url中。同时,对于80-FF字节(ISO-8859-1),由于已经超出了US-ACII定义的字节范围,因此也不可以放在Url中。
& & 保留字符
Url可以划分成若干个组件,协议、主机、路径等。有一些字符(:/?#[]@)是用作分隔不同组件的。例如:冒号用于分隔协议和主机,/用于分隔主机和路径,?用于分隔路径和查询参数,等等。还有一些字符(!$&’()*+,;=)用于在每个组件中起到分隔作用的,如=用于表示查询参数中的键值对,&符号用于分隔查询多个键值对。当组件中的普通数据包含这些特殊字符时,需要对其进行编码。
RFC3986中指定了以下字符为保留字符: ! * ‘ ( ) ; : @ & = + $ , / ?
# [ ] 不安全字符 还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。这些字符被视为不安全字符,原因有很多。
Url在传输的过程,或者用户在排版的过程,或者文本处理程序在处理Url的过程,都有可能引入无关紧要的空格,或者将那些有意义的空格给去掉
引号以及&& 引号和尖括号通常用于在普通文本中起到分隔Url的作用 #
通常用于表示书签或者锚点 % 百分号本身用作对不安全字符进行编码时使用的特殊字符,因此本身需要编码 {}|\^[]`~
某一些网关或者传输代理会篡改这些字符&
需要注意的是,对于Url中的合法字符,编码和不编码是等价的,但是对于上面提到的这些字符,如果不经过编码,那么它们有可能会造成Url语义的不同。因此对于Url而言,只有普通英文字符和数字,特殊字符$-_.+!*’()还有保留字符,才能出现在未经编码的Url之中。其他字符均需要经过编码之后才能出现在Url中。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 美国银联atm 的文章

 

随机推荐