python #coding:utf-8和setdefaultencoding有什么区别?
2016-08-16 09:19
816 查看
# coding:utf-8
import sys reload(sys) sys.setdefaultencoding('utf-8')
1.如果你在python中进行编码和解码的时候,不指定编码方式,那么python就会使用defaultencoding。
而python2.x的的defaultencoding是ascii,这也就是大多数python编码报错:“UnicodeDecodeError: 'ascii' codec can't decode byte ......”的原因。
2.关于头部的# coding:utf-8,有以下几个作用
2.1如果代码中有中文注释,就需要此声明
2.2比较高级的编辑器(比如我的emacs),会根据头部声明,将此作为代码文件的格式。
2.3程序会通过头部声明,解码初始化 u"人生苦短",这样的unicode对象,(所以头部声明和代码的存储格式要一致)
我写过一篇关于python 编码的博客:http://www.pulpcode.cn/program-language/2014/12/23/python-encode/
---------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------
python2.7以后不用setdefaultencoding了,这两个是没有区别的
---------------------------------------------------------------------------------------分割线------------------------------------------------------------------
这两个作用不一样,
1.
# coding:utf-8
作用是定义源代码的编码. 如果没有定义, 此源码中是不可以包含中文字符串的.
PEP 0263 -- Defining Python Source Code Encodings
https://www.python.org/dev/peps/pep-0263/
2.
sys.getdefaultencoding()
是设置默认的string的编码格式
相关文章推荐
- python #coding:utf-8和setdefaultencoding有什么区别?
- python中sys.setdefaultencoding('utf-8')的作用
- 评论python编码文章《立即停止使用 setdefaultencoding('utf-8'), 以及为什么》
- python3,使用sys.setdefaultencoding('utf-8'),编译时报错
- python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
- 设置eclipse默认编码为UTF-8 Set default encoding to utf-8 in eclipse
- import sys reload(sys) sys.setdefaultencoding("utf-8")
- Python问题分析:AttributeError: module 'sys' has no attribute 'setdefaultencoding'
- 为什么有时候必须添加sys.setdefaultencoding('utf-8')
- 【python】程序开始都要敲入 # -*- coding:utf-8 -*- 这个有什么作用呢?
- setdefaultencoding python 编码问题
- python reload sys 后才能setdefaultencoding 的原因
- #!/usr/bin/env python与#!/usr/bin/python的区别-*-coding:utf-8-*-和 coding:utf-8区别
- 为什么python中,程序开始都要敲入“# -*- coding: UTF-8 -*-” 这个有什么作用呢?
- Python - reload(sys) + sys.setdefaultencoding
- Python3异常-AttributeError: module 'sys' has no attribute 'setdefaultencoding'
- Python学习笔记之疑问 6:#coding=utf-8 与#-*- coding: utf-8 -*-的区别
- 为什么有时候必须添加sys.setdefaultencoding('utf-8')
- 基础入门_Python-模块和包.setdefaultencoding前为何要reload(sys)?
- python AttributeError: 'module' object has no attribute 'setdefaultencoding'