【url编码和转码】UnicodeEncodeError: 'ascii' codec can't encode characters in position 101-103: ordina

本文详细介绍了URL编码的作用及其在Python中的实现方法。解释了为何需要进行URL编码,并提供了具体实例,如如何处理中文和特殊字符,确保它们能正确地作为URL参数传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考网址:
https://zhuanlan.zhihu.com/p/38230537

url传回来的时候,也许会有错误字符非ascii的情况
一般出现在python2.7版本里,
python3似乎已经解决这个问题了。

 #print response.text
 print response.text.encode('utf-8')

用上面的代码,注释掉原先的,调用.endocde

url编码问题

当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的。

因为 url 对字符有限制,比如把一个邮箱放入 url,就需要使用 urlencode 函数,因为 url 中不能包含 @ 字符。

又比如传入中文的时候,我们也需要用urlencode 函数:

import urllib
 urllib.urlencode({'data': post_data})

函数用法见网址:
urlencode函数用法

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

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

此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。

如果要传递的参数不想让人一眼就看出来的话,也可以urlencode一下,url就会变成一段编码后的长长的字符串。
但是这并不是加密,,只是编码!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值