实际问题

Python中的urllib模块用来处理url相关的操作,unquote方法对应javascript中的urldecode方法,它对url进行解码,把类似"%xx"的字符替换成单个字符,例如:“%E6%B3%95%E5%9B%BD%E7%BA%A2%E9%85%92”解码后会转换成“法国红酒”,但是使用过程中,如果姿势不对,最终转换出来的字符会是乱码“法国红é
”。

#取得kw
kw = self.url.split('&')[-1].replace('kw=', '')
#url解码
word = urllib.unquote(kw)


kw的值打印出来的显示的是:%E5%A4%A7%E6%B4%B2%E5%8F%A4%E6%B8%A1
但是word确是:大洲å¤æ¸¡

分析

直接编码的字符来处理看看是否会出现乱码:%E5%A4%A7%E6%B4%B2%E5%8F%A4%E6%B8%A1

#取得kw
kw = “%E5%A4%A7%E6%B4%B2%E5%8F%A4%E6%B8%A1”
#url解码
word = urllib.unquote(kw)

发现没有问题word正常显示
那就是在取值kw的时候有问题
发现函数默认返回的是值的类型是unicode
相当于u“%E5%A4%A7%E6%B4%B2%E5%8F%A4%E6%B8%A1”

解决办法

在函数调用之后,使用强制类型转换转为str类型,去掉u

#取得kw
kw = self.url.split('&')[-1].replace('kw=', '')
kw = str(kw)
#url解码
word = urllib.unquote(kw)

这样就能正常解码了

  • PS Unicode类型转str类型,不能使用str()强制转换,而是使用strr.encode(‘utf-8’)编码转换

python使用 urllib.unquote乱码的原因相关推荐

  1. Python:urllib与urllib2错误解析

    原文地址: http://www.zhenv5.com/?p=398   首先说一下我用的Python版本是2.7.1,等换了新主机就用最新的3.1版本, 现在先将就着学习Python的基本知识. 悲 ...

  2. python php 通信,Python和php通信乱码问题解决方法

    Python和php通信乱码问题解决方法 发布于 2014-07-29 22:28:21 | 118 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertex ...

  3. python3urllib中的quote与encode的区别_Python的urllib.quote()和urllib.unquote()的等效Javascript函数...

    好吧,我想我要用一组混合的自定义函数: Encode:使用encodeURIComponent(),然后将斜杠放回. 解码:解码找到的任何%hex值. 下面是我最终使用的更完整的变体(它也能正确处理U ...

  4. python idea控制台中文乱码_python 解决cv2绘制中文乱码问题

    python 解决cv2绘制中文乱码问题 因为使用cv2.putText() 只能显示英文字符,中文会出现乱码问题, 因此使用PIL在图片上绘制添加中文,可以指定字体文件. 大体思路: OpenCV图 ...

  5. python爬虫-urllib模块

    urllib 模块是一个高级的 web 交流库,其核心功能就是模仿web浏览器等客户端,去请求相应的资源,并返回一个类文件对象.urllib 支持各种 web 协议,例如:HTTP.FTP.Gophe ...

  6. python抓取网站乱码_如何使用Python抓取网站

    python抓取网站乱码 by Devanshu Jain 由Devanshu Jain It is that time of the year when the air is filled with ...

  7. python模块—urllib

    1. 网页操作 urllib.urlopen(url[,data[,proxies]]) 打开一个url,返回一个文件对象,然后可以进行类似文件对象操作 url:远程数据的路径,即网址 data:表示 ...

  8. urllib.unquote()

    urllib.unquote() - [python] 字符串被当作url提交时会被自动进行url编码处理,在python里也有个urllib.urlencode的方法,可以很方便的把字典形式的参数进 ...

  9. Cookie登录爬取实战:Python 利用urllib库的cookie实现网站登录并抓取

    1 环境:Python 3 +urllib库 实战网站:http://www.mjzcnd.com/  梅江之春论坛网站 2 背景: 现在许多网站都需要登录后才能访问某个页面,在登陆之前,我们是没有权 ...

  10. python爬虫 - Urllib库及cookie的使用

    lz提示一点,python3中urllib包括了py2中的urllib+urllib2.[python2和python3的区别.转换及共存 - urllib] 怎样扒网页? 其实就是根据URL来获取它 ...

最新文章

  1. python脚本下载sentinel数据_Python API sentinelsat下载错误
  2. 刷新系统托盘(清除死掉的图标)修正版
  3. 根据字符串选择类并完成类的初始化--方法二
  4. Debug shell: Syntax error: “(“ unexpected
  5. 理解javascript闭包
  6. boost pool内存池库使用简要介绍
  7. java集合多个最大值_Java 8 Stream 求集合元素每个属性的最大值
  8. 奥拉星插件flash下载手机版下载安装_奥拉星游戏插件
  9. android 结束if循环_几款Android反编译器对循环结构的还原能力测试记录
  10. Docker 集群环境实现的新方式
  11. 题目1111:单词替换
  12. 使用IDEA生成DOC文档
  13. 苹果 2017 秋季产品发布会直播预告
  14. Kafka 核心原理(贼全面)
  15. Navicat Premium 16安装方法
  16. solr搜索服务的使用
  17. [数据结构]数据结构简介和顺序表
  18. Mac快捷键大全(常用的可以修改)
  19. CSI SAP2000 v22详细安装教程(图文安装步骤)
  20. 数算实习+数算 机考总结……

热门文章

  1. win10相机计算机无法使用,win10相机无法使用完美解决方法
  2. 机制检验——中介检验
  3. 新手必备的矢量网络分析仪使用教程
  4. 洛谷P3332 K大数查询
  5. mysql日期相减返回月数_MySql日期相减返回月数_MySQL
  6. Lookup 组件用法全解
  7. 5 个关键点!优化你的 UI 原型设计
  8. 微信小程序开发上线注意事项
  9. Unity爆炸、闪电、火焰、雷雨特效Demo
  10. 图片太大怎么压缩变小?教你四招快捷压缩图片