对于python的字符串来说。如果是a = 'abc',这就是代表是一个正常的字符串类型为str。如果是a= b'abc'这就代表着一个bytes object。对于bytes object 来说,可以使用decode而非encode;对于正常字符串而言可以使用encode,但是却不能使用decode.如果想将bytes object直接转换为字符串型,可以使用str()或者repr()。但是这里对于已经进行编码的字符串而言,这样做没有任何好处。
今天碰到一个一个问题,使用python取得网页内容的时候:
这里content就是一个bytes object.如果使用正则式title[\d\D]*?title就会失效,抛出exception,说不能将findall(),finditer()等函数用在bytes object上。所以要进行decode()
代码如下:
如果想搜索中文,正则式中也可以放入中文。
还有一点不好的地方,就在于这个decode()中到底放入什么编解码方式。这取决于那个网页的信息了。一般都会给出。csdn.net给出的就是charset=utf-8.也可以使用下面的代码得到编解码方式:
可惜的一点是,这里的information是字符串型。传说它是http.client.HTTPMessage的实例并且
继承了email.message.Message。根据文档说是用information.get_charset()就能得到编码是啥类型。可惜我没有试出来,返回值为None.使用csdn的例子可以得到info的信息为:
Server: nginx/0.6.36
Date: Sun, 16 Aug 2009 15:51:04 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Vary: Accept-Encoding
Cache-Control: max-age=604800
Content-Length: 109205
Content-Location: http://www.csdn.net/index.htm
Last-Modified: Sat, 15 Aug 2009 11:11:04 GMT
Accept-Ranges: bytes
ETag: "f4756814991dca1:aa9"
X-Powered-By: ASP.NET
X-UA-Compatible: IE=EmulateIE7
Age: 19
X-Cache: HIT from FECACHE
X-Cache-Lookup: HIT from FECACHE:80
Via: 1.0 cachedev.CSDN.NET (WebCache)
分享到:
相关推荐
综上所述,Python中文乱码问题主要源于字符编码的不匹配,通过正确识别和指定编码,可以避免大部分乱码情况的发生。在处理中文字符时,养成良好的编码习惯,统一使用UTF-8编码,可以显著减少乱码问题,提升开发效率...
遵循最佳实践,如始终指定编码,保持编码一致性,以及正确处理Unicode和非Unicode字符串,可以帮助我们避免常见的乱码问题。通过分析`python_coding.py`和`hongloumeng.txt`,我们可以进一步加深对这些概念的理解。
在IT领域,编程语言Python在处理文本数据时,特别是涉及到编码问题时,常常需要理解Unicode、...如果不一致,可能会导致乱码问题。因此,了解和正确使用各种编码在IT实践中至关重要,避免出现数据丢失或乱码的错误。
在 Python 中,中文乱码问题一直是一个让人头疼的问题,经常抛出编码转换的异常。那么,Python 中的 str 和 unicode 到底是什么东西呢? 首先,Python 中的 unicode 指的是 unicode 对象。例如,u'/u54c8/u54c8' ...
PEP8是关于Python编码风格的规范,而如何将英文文档转成中文应当是遵循翻译原则和文档规范的问题。所以,正确理解这部分内容应该是:PEP8指导如何书写整洁的Python代码,并且在必要时如何将文档和注释用中文书写,...
Google Python 编码规范 本文档是 Google 公司的 Python 编码规范,旨在为 Python 程序员提供一个详细的编码风格指南。该指南涵盖了 Python 语言规则、 Python 风格规则、代码编写风格、注释、类、字符串、TODO ...
Python 编码与解码详解 编码是将可读的字符转换为计算机内部表示的过程,而解码则是相反的过程,即将计算机内部的表示转换回可读的字符。...正确处理编码问题可以避免字符乱码,提高程序的兼容性和稳定性。
在Python中实现香农编码,首先需要统计字符的出现频率,这可以通过构建一个字典来完成。例如,遍历文本文件,对每个字符进行计数,得到一个键为字符、值为频率的字典。接着,可以使用哈夫曼树(也称为最优二叉树)来...
使用 UTF-8 编码来保存 Python 代码文件,以避免编码错误和乱码。 导入 在使用导入语句时,需要遵守一定的规则,避免污染命名空间。建议使用 import 语句来导入模块,避免使用 from 语句来导入模块中的函数或变量。...
综上所述,解决Python抓取HTML页面时的乱码问题需要正确识别和处理编码。通过检测网页的编码、比较声明编码以及在必要时转换编码,可以有效地避免乱码的出现。此外,使用适当的库和模块(如`chardet`和`...
在这个Python实现中,我们将深入探讨算术编码的基本原理、Python编程实现的关键步骤以及如何进行编码和解码。 1. **算术编码的基本概念** 算术编码的核心思想是将输入符号的概率分布转化为一个连续的区间,通过...
解决python中文乱码问题、首先发送请求,然后将请求返回的值传到coding(req)函数。
在Python编程中,文件读写操作是非常常见的需求之一,尤其是在处理非英文或特殊字符时,经常会遇到乱码问题。本文将深入探讨Python中的文件读写以及如何正确处理编码问题,避免出现乱码的情况。 #### 一、Python...
适用于初学者的python规范。 “没有规矩不成方圆”。编程工作往往是一个团队协同进行,我们写出来的代码最终可能要提供给同事或其他人阅读,因而我们迫切需要一份一致的编码规范,以提高组内代码的可读性,同时加强...
总的来说,理解Python2中的编码和解码机制,以及如何在处理文件和字符串时正确应用它们,对于避免中文乱码问题至关重要。通过细心处理编码转换,你可以确保Python程序能正确地处理各种语言的文本数据。
python OpenCV imshow()中文乱码问题解决方法之一