UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
来源:互联网 发布:大地windows 编辑:程序博客网 时间:2024/05/16 06:35
最近在群里总是遇到有人问这个问题,其实这个错误的本身和代码的编写应该没关系,代码的语法等应该是没有问题的。
原来的代码是这样的
# -*- coding: UTF-8 -*-import sqlite3 def gsel(cur): cur.execute("SELECT * FROM collection") def main(): conn = sqlite3.connect("build.db3") cur = conn.cursor() gsel(cur) # conn.commit() rs = cur.fetchall() fp = open("output.txt", "w") for row in rs: fp.write(row[1]) # 读取并写入第2列数据 if __name__ == '__main__': main()
在python 2.7环境下运行报出错误
这是由于编码的错误。python本身是有默认的编码,可以通过以下方式获得:
import sys
print sys.getdefaultencoding()
如果你的代码使用的是utf-8编码,但是默认的编码是ascii,那么,这两个就会不兼容,出现以上的错误。
可以通过sys.setdefaultencoding(‘utf-8′)方式来修改python的默认编码。但是在python 2.7环境下,直接这么用就会出现如下AttributeError异常:
其实并不是因为sys没有setdefaultencoding()而是在调用之前需要先调用reload(sys):
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
修改的代码如下:
# -*- coding: UTF-8 -*- import sys # 1import sqlite3 def gsel(cur): cur.execute("SELECT * FROM collection") def main(): reload(sys) # 2 sys.setdefaultencoding('utf-8') # 3 conn = sqlite3.connect("build.db3") cur = conn.cursor() gsel(cur) # conn.commit() rs = cur.fetchall() fp = open("output.txt", "w") for row in rs: fp.write(row[1]) if __name__ == '__main__': main()
本文借鉴博文:http://wangye.org/blog/archives/629/#userconsent# 王晔的流水账
0 0
- UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 异常:UnicodeEncodeError: 'ascii' codec can't encode characters 处理办法
- Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode 错误
- 解决Python2.x的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- Python2.x的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: 'ascii' codec can't encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 题目:解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 解决Python2.7的UnicodeEncodeError: ‘ascii‘codec can’t encode异常错误
- 解决UnicodeEncodeError: 'ascii' codec can't encode
- SQL中 decode()函数简介
- 创业者必须警惕的3个大坑
- Duplicate property mapping of xxx found in xx 解决办法
- 简洁网站代码,搜索引擎更喜欢
- 启动流程、模块管理与 Loader
- UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
- 详解Cassandra配置文件配置项
- Linux 的启动流程
- Linux下C语言动态库与静态库的制作
- Ubuntu Kylin 13.10下QtCreator及sublime下无法输入中文解决方法
- 关于OLEDB导入Excel数据,产生科学计数法问题
- sql 多表查询优化
- EXC_BAD_ACCESS(code=1,address=0x40000000c)
- JDK1.5新特性