Python的编码问题

简介: 在看《Dive Into Python》有一章是对XML的处理,其中写着 import sys sys.setdefaultencoding('iso-8859-1')   而我使用urlopen写一个采集小程序时,遇上了一个编码问题。

在看《Dive Into Python》有一章是对XML的处理,其中写着

import sys

sys.setdefaultencoding('iso-8859-1')

 

而我使用urlopen写一个采集小程序时,遇上了一个编码问题。以抓取百度首页为例:

sock = urllib.urlopen("http://www.baidu.com/")
htmlSource = sock.read()
sock.close()
 
当打印htmlSource时,会发现出现乱码的情况了,原因是百度默认的编码是gb2312,而python默认的编码格式为ascii(可通过打印sys.getdefaultencoding() 显示出来)
 
为什么import sys后,然后使用sys.不会自动提示显示出setdefaultencoding呢?之后搜索了一下:
python的初始化脚本site.py会把sys模块的setdefaultencoding方法删除,python在初始化完毕之后,禁止用户改变默认编码。

以上内容引用至【python改变默认编码

 

还有就是在抓取到页面后,需要对页面进行一个解码动作(decode),完整的demo代码将会如下所示:

   1: #coding:utf-8
   2: import urllib
   3: import sys
   4:  
   5: reload(sys)
   6:  
   7: sys.setdefaultencoding('utf-8')
   8:  
   9: print sys.getdefaultencoding()
  10:  
  11: sock = urllib.urlopen("http://www.baidu.com/")
  12: htmlSource = sock.read().decode('GBK')
  13: sock.close()
  14:  
  15: print htmlSource
目录
相关文章
|
存储 Python
Python文件编码概念详解
Python文件编码概念详解
316 1
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
1133 6
|
Python
Python 中如何指定 open 编码为ANSI
Python 中如何指定 open 编码为ANSI
425 1
|
Python
11个提升Python列表编码效率的高级技巧
Python中关于列表的一些很酷的技巧
267 1
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
2132 1
|
开发者 Python
Python编码风格
Python编码风格
182 1
|
存储 缓存 Python
python中小数据池和编码
python中小数据池和编码
255 3
|
自然语言处理 Python
Python编码问题
Python编码问题是指在处理文本时,由于编码不一致导致程序不能正确处理文本的问题。在Python中,编码问题主要有两种情况:文件编码问题和字符串编码问题。
319 7
|
缓存 Java Unix
python中内存管理等10个编码习惯
【7月更文挑战第3天】本文涵盖了Python编程中的变量管理、模块导入、命令行参数、内存管理和面向对象设计的10个关键概念。
261 0
python中内存管理等10个编码习惯
|
Python IDE 开发工具
【Python贪吃蛇】:编码技巧与游戏设计的完美结合
【Python贪吃蛇】:编码技巧与游戏设计的完美结合

推荐镜像

更多