python中文乱码的解决方法

yipeiwu_com5年前Python基础

乱码原因:

源码文件的编码格式为utf-8,但是window的本地默认编码是gbk,所以在控制台直接打印utf-8的字符串当然是乱码了!

解决方法:

1、print mystr.decode('utf-8').encode('gbk')
2、比较通用的方法:

import sys
type = sys.getfilesystemencoding()
print mystr.decode('utf-8').encode(type)

1. Python中列表或字典输出乱码的解决方法

问题: Python中的列表(list)或字典包含中文字符串,直接使用print会出现以下的结果:

#打印字典
dict = {'name': '张三'}
print dict
>>>{'name': '\xe5\xbc\xa0\xe4\xb8\x89'}

#打印列表
list = [{'name': '张三'}]
print list
>>>[{'name': '\xe5\xbc\xa0\xe4\xb8\x89'}]

解决方案:
使用以下方法进行输出:

import json

#打印字典
dict = {'name': '张三'}
print json.dumps(dict, encoding="UTF-8", ensure_ascii=False)
>>>{'name': '张三'}

#打印列表
list = [{'name': '张三'}]
print json.dumps(list, encoding="UTF-8", ensure_ascii=False)
>>>[{'name': '张三'}]

2. Python2.7的UnicodeEncodeError: ‘ascii' codec can't encode异常错误

#重置编码格式
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

以上就是python中文乱码的解决方法的详细内容,更多关于python乱码的资料请关注【听图阁-专注于Python设计】其它相关文章!

相关文章

在RedHat系Linux上部署Python的Celery框架的教程

在RedHat系Linux上部署Python的Celery框架的教程

 Celery (芹菜)是基于Python开发的分布式任务队列。它支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度。 架构设计  Celery的架构由...

详解python实现识别手写MNIST数字集的程序

我们需要做的第⼀件事情是获取 MNIST 数据。如果你是⼀个 git ⽤⼾,那么你能够通过克隆这本书的代码仓库获得数据,实现我们的...

Python I/O与进程的详细讲解

Python I/O与进程的详细讲解

I/O with语句 with context_expression [as target(s)]: with-body context_expression返回值遵从上下文...

Python中的pass语句使用方法讲解

 Python pass语句使用当语句要求不希望任何命令或代码来执行。 pass语句是一个空(null)操作;在执行时没有任何反应。pass也是代码最终会是有用的,但暂时不用写...

Python检查 云备份进程是否正常运行代码实例

这篇文章主要介绍了Python检查 云备份进程是否正常运行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 场景:服务器自动备份...