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
目录
相关文章
|
1月前
|
存储 文件存储 Python
python进制和编码
python进制和编码
|
1月前
|
Java 编译器 C语言
python安装、输入输出、注释、中文编码、编码规范等基础语法
python安装、输入输出、注释、中文编码、编码规范等基础语法
|
4月前
|
Python
中文csv文本编码转utf8那些事 - python实现
中文csv文本编码转utf8那些事 - python实现
42 1
|
2月前
|
存储 移动开发 算法
Python怎么将图片转换成base64编码
Python怎么将图片转换成base64编码
31 0
|
4月前
|
数据挖掘 开发工具 Python
基于Python开发的企业编码生成系统(源码+可执行程序+程序配置说明书+程序使用说明书)
基于Python开发的企业编码生成系统(源码+可执行程序+程序配置说明书+程序使用说明书)
|
1天前
|
Python
Python明确指定编码
【5月更文挑战第5天】
8 3
|
2天前
|
自然语言处理 Python
Python的编码问题
【5月更文挑战第4天】Python的编码问题
9 3
|
10天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】使用Scikit-learn进行数据编码
【4月更文挑战第30天】本文介绍了Python Scikit-learn库在机器学习数据预处理中的作用,尤其是数据编码。数据编码将原始数据转化为算法可理解的格式,包括标签编码(适用于有序分类变量)、独热编码(适用于无序分类变量)和文本编码(如词袋模型、TF-IDF)。Scikit-learn提供LabelEncoder和OneHotEncoder类实现这些编码。示例展示了如何对数据进行标签编码和独热编码,强调了正确选择编码方法的重要性。
|
14天前
|
存储 JSON 数据处理
|
15天前
|
数据采集 自然语言处理 数据挖掘
ftfy,一个超强的 Python 编码问题修复库!
ftfy,一个超强的 Python 编码问题修复库!
9 0