UnicodeDecodeError的解决
来源:互联网 发布:韩国爱情电影 知乎 编辑:程序博客网 时间:2024/06/03 06:31
高龄土木狗一枚,因为工作枯燥无味,钱途渺茫,毅然辞职转行IT,跌跌撞撞的开始学Python语言,幻想着魔都水深火热的生活……
因为几乎零基础入行,学习Python的过程中难免遇到一些意外的错误,抓耳挠腮的看帖子看文档,还是一头雾水。好在本狗有时间慢慢啃,搞明白问题的同时,也对学程序有了些许的信心。在此,本着“贻笑大方”的目的贴上来自己的学习过程,敬请路过的大神小神指点一二。
filename = 'alice.txt'try: with open(filename) as f_obj: contents = f_obj.read()except FileNotFoundError: msg = "Sorry, the file " + filename + " does not exist" print(msg)else: # 计算文件大致包含多少单词 words = contents.split() num_words = len(words) print("The file " + filename + " has about " + str(num_words) + " words.")
该段代码是按图灵的书《Python编程-从入门到实践》中“文件和异常”一章中一步步打的,自查一遍也没什么语法错误和手误,运行的时候却报错
Traceback (most recent call last):File "D:/Users/liangbrave/PycharmProjects/untitled/Python.py", line 6, in <module>contents = f_obj.read()UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence
这篇TXT,是从书上给的一个英文网站上下载的,按理说应该是ASCII编码,可是不知道为什么报错的时候提示是‘gbk’编码。好吧,现在出错还是习惯性的百度,那就问问度娘,UnicodeDecodeError怎么办,有人说加上文件头:
#!/usr/bin/env python # -*- coding: utf-8 -*-
试了试,还是同样报错。想想也对,报错是UnicodeDecodeError,应该是解码错误,而文件头是告诉Python,这一段代码产生的文件我要用utf-8编码(自己理解的,敬请斧正),自然是不起作用。
后来去查文档,看到Unicode HOWTO一章中的Reading and Writing Unicode Data中打开文档时,open()加了一个encoding参数,我也挪过来试一下:
filename = 'alice.txt'try: with open(filename, encoding='utf-8') as f_obj: contents = f_obj.read()except FileNotFoundError: msg = "sorry, the file " + filename + " does not exist" print(msg)else: # 计算文件大致包含多少单词 words = contents.split() num_words = len(words) print("The file " + filename + " has about " + str(num_words) + " words.")
竟然通过了:
The file alice.txt has about 29371 words.Process finished with exit code 0
此时其实距出错已经一天有余了,卡在这个问题上的时间已经让我有些崩溃了,此时此刻我只想感谢我前天晚上潜入前公司用前办公室的打印机打印出的Python文档……
言归正传,open()函数的encoding参数,缺省值是None,指定为‘utf-8’之后,即指明了将要打开的‘alice.txt’文件的编码方式为Unicode,解码问题也就迎刃而解。
整天在家,语言功能都退化了,胡言乱语一通,也不知道说明白没有,也不知道说的对不对。路过的将就看吧^_^
- 解决Python的UnicodeDecodeError
- UnicodeDecodeError的解决
- 解决python的UnicodeDecodeError问题
- 解决python2.x 的UnicodeDecodeError
- 转帖:boa UnicodeDecodeError: 'ascii' codec 的解决
- 解决UnicodeDecodeError问题
- 解决unicodedecodeerror问题
- Python-解决pip安装库时UnicodeDecodeError的错误
- 解决android源码repo更新时出现的UnicodeDecodeError 问题
- Python如何解决Cx_Oracle查询时UnicodeDecodeError的问题?
- 解决python pip UnicodeDecodeError问题
- Python的UnicodeDecodeError错误
- Python UnicodeDecodeError 的解决办法
- UnicodeDecodeError
- cx_Freeze打包python时,出现UnicodeDecodeError: 'utf8′.... 问题的解决
- 解决使用中文出现UnicodeDecodeError: 'ascii' codec can't decode byte 的问题
- 解决 Python 出现的UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9
- 解决 Python 出现的UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9
- Php中使用Select 查询语句的实例
- MySQL数据库设计总结
- vi文件保存退出命令":wq"和":x"的区别
- bzoj 1875: [SDOI2009]HH去散步 动态规划+矩阵乘法
- ubuntu Failed to fetch 404 错误解决
- UnicodeDecodeError的解决
- rsyslog 的rsyslog.conf配置详解
- LeetCode 160. Intersection of Two Linked Lists(C++版)
- AnglurJS将金额转换为大写金额
- 像差与zernike多项式
- 佟刚老师javaweb笔记(二)
- win7系统开发hadoop时遇到的问题总结
- c++远征之封装篇(对象)
- freemarker 比较大小