什么时候需要urlencode,在什么时候可以

http://www.itjxue.com  2023-01-09 07:40  来源:未知  点击次数: 

为什么要进行url encode

rl转义其实也只是为了符合url的规范而已。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。

看一下php的urlencode的说明了。

urlencode — 编码 URL 字符串

div u"="" style="color: rgb(123, 125, 98); font-family: verdana, Arial, helvetica, sans-seriff; font-size: 12px; line-height: 18px; white-space: normal; background-color: rgb(255, 255, 255);"

string urlencode ( string $str )

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

android,城市名或城市ID,如:"苏州",需要utf8 urlencode,这是什么意思啊?

这是一段16进制形式的url编码,url对于中文而言必须要经过编码处理。

python3爬虫urllib.request.urlopen("网址").read() 本来是utf-8,为什么还要加上urlencode(“utf-8”)

encoding(utf-8)是用来转化为utf-8编码方式的,一般编码的网站爬下来直接用Beautifulsoup解析即可,得到的编码方式一般为GBK或者utf-8,GBK就是专门的中文编码方式,utf-8为含有中文的编码方式,unicode是通用的编码方式,主要就这三种编码方式

为什么需要urlEncode

字符串数据以url的形式传递给web服务器时,对字符是有限制的。为了符合url的规范,这些被限制的字符,就需要被转义。比方说:把一个邮箱放入url就需要转义,因为邮箱中包含限制字符 @ 。

在标准的url规范中,中文和很多的字符是不允许出现在url中的。这些需要转义的字符都将被替换成 % 后跟两位十六进制数。

这些字符都是不可打印的,自然需要进行转化。

例如:emoji字符????????,转化也是理所当然的。

url中的分隔符包含主要分隔符 :#[]@?/ 和次要分隔符 !$'()*+,;= 。对于url的 query 参数和值,如果在分隔符的包含范围内,除了 ? 和 / 外,都需要转义。例如:对于原始url 哈哈paramB= 来说, 哈哈 和 paramB= 中的 就需要参与转义。否则,对于 来说,你认为它是一个参数值,还是url本身的分隔符呢?

例如:空格。为了避免歧义,需要被转化成 + 或者 %20 。具体转换成 + 还是 %20 主要依据不同的转换标准。

AFURLRequestSerialization 的源码很好地说明了转义的过程和规则:

使用httpclient为什么 get方式 汉字内容要加urlencode编码, post方式不需要加编码,servlet就可以解析

get方式时参数是作为url一部分传输的。而对于url是有规范的,汉字超出了规范的范围。

post方式不需要加编码是错误的。post时也必须传送符合服务器规范的编码。如果错误,服务器收到的内容也不会正确。 你的不加编码也能解析,只能说明你的client端恰好和服务器端编码一致。

请问urlencode和urldecode有什么必要性?

1 2 问: 使用post时数据会放到http报文中间传输过去,你是不需要做任何操作的。你可以认为自动encode了然后你读取的时候自动decode了。

3 问:当你使用get方法传输数据时,而且传输的数据中包含中文、符号等字符时,就需要用encode进行编码。

4 问:你手工encode的结果,再任意多次encode也不会发生变化了,你可以试试。

(责任编辑:IT教学网)

更多

推荐XML/XSLT文章