首页 / 知识
Python中的编码问题,中文乱码问题
2023-11-12 13:31:00
如果不声明编码,则中文会报错,即使是注释也会报错。只要写中文,必须加一句:#--coding:utf-8--。
文档编码是一种告诉程序——无论是计算机的操作系统还是Python代码——读取文档的规则。正确读取一个文档,往往需要先知道文件的扩展名,因为编码方式往往与扩展名有很大的关系。
(1)纯文本文档的获取与处理:直接用urlopen读取后,用read()函数获取文本内容即可。纯文本页面不要转换成BeautifulSoup对象,因为无法解析,会被认为是一堆字符串,只能用字符串的操作方法来解析。
(2)CSV文档、PDF文档等非纯文本文档的读取方式:直接通过文档获取链接以字符串的方式读取文档——通过io库的StringIO函数将字符串转换为StringIO对象——通过CSV库或PDF库将StringIO对象读取为相应格式的文档,
编码类型:
(1)UTF-8:统一字符集-转换格式8位。它的开头有标记指示字符占了用了多少个字节来表示,一个字符最多有四个字节。
(2)ASCII:每个字符7位,用来表示中文会不够用,但是英文够用了。
(3)UtF-8和ASCII的结合:首位为0,即只包含一个字节的UTF-8字符和ASCII通用,因为相当于只用到了7位。但首位为1的两字节UTF-8字符不通用。
(4)ISO编码:解决非英文非中文语言文档太大的问题,比如土耳其语没有那么多字符,又不能用单纯的ASCII。因此使用ASCII的首位来做特殊化,可以针对不同的语言生成不同的规则。
在用Python读网页或文档时,最好统一将获取的内容统一转换成UTF-8编码。获取国际站的内容时,最好先看看网站metasharset信息中所指示的编码方式后再确定选择哪种编码方式。
Encode和Decode:
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串str2转换成gb2312编码。
因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码
以上内容为大家介绍了Python中的编码问题,中文乱码问题,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规python中日期与字符串如何相互转换
python中日期与字符串如何相互转换?,时间,代码,培训,字符串,日期,格式,内容,数组,字符,本文,在python的使用过程中我们会发现,如果编程的格式python如何翻转字符串?
python如何翻转字符串?,培训,字符串,函数,方法,切片,放入,模块,以上,版本,更多,python中翻转字符串的方法:1、通过字符串切片来翻转>>>s=12345python怎么判断文档是否有指定后缀
python怎么判断文档是否有指定后缀?,培训,后缀,文档,文件夹,路径,以上,文件,方法,更多,内容,python判断文档是否有指定后缀的方法:importosYou如何在python代码中指定保存的文件
如何在python代码中指定保存的文件格式,代码,培训,文件格式,格式,二进制文件,文件,后缀,以上,方法,更多,python指定保存文件格式的方法:1、保python能做网站吗?
python能做网站吗?,网站,工程,认证,培训,系统,服务,框架,页面,初始化,性功能,python可以做网站,Python有很多优秀的网站框架,可以非常快速的建python字符串如何判空?
python字符串如何判空?,密码,培训,字符串,空格,字符,方法,两边,长度,用户名,全部,python判断字符串是否为空的方法:1、使用字符串长度判断len(python中如何数出字符串的字符个数
python中如何数出字符串的字符个数,培训,字符,字符串,个数,次数,方法,示例,字典,语法,以前,python中统计字符串中祝福个数的方法:1、使用len()python如何获取字符串最后一个字符
python如何获取字符串最后一个字符?,培训,字符串,方括号,字符,方法,引号,变量,数据类型,结尾,分配,python获取字符串最后一个字符的方法:字符python如何判断字符串中是否含有空
python如何判断字符串中是否含有空格?,培训,空格,字符串,方法,空白,下面,以上,更多,内容,python中可以使用下面的方法判断字符串中是否包含python字符串不要最后字符怎么做?
python字符串不要最后字符怎么做?,培训,字符串,字符,末尾,空格,方法,示例,语法,以上,结果,python中可以使用rstrip()方法删除string字符串末Python写完代码怎么用
Python写完代码怎么用,代码,下来,数字,概念,培训,文本,模式,文件,程序,路径,python运行有两种方式,一种是在python交互式命令行下运行;另一种