python 编码问题
来源:互联网 发布:vb语言程序设计pdf 编辑:程序博客网 时间:2024/06/05 14:36
首先这些问题只有在python2.X版本出现,因为3.X版本中python环境就只有unicode类型的字符串了,即所有程序中处理的都会自动转换 成unicode字符串。那么2.X的python程序开发中如何避免和理清编码问题呢?首先要保持一个良好的统一规则,不然一切都是白扯了,统一都用 utf-8是最好的。
1.处理非ASCII编码
Python的默认编码是ascii编码,当python中间处理非ASCII编码时,经常会出现如下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的数字
我们常在文件开头加上编码属性:# -*- coding=utf8 -*-
所以无法处理其他编码时需要设置python的默认编码为所需要的编码,主要有以下2个方法:
01. 首选方法
import sys reload(sys)#重新加载sys
sys.setdefaultencoding('utf-8')#看你的编码需要utf-8还是gb2312
为什么要在调用setdefaultencoding时必须要先reload一次sys模块呢?因为这里的import语句其实并不是sys的第一次导入 语句,也就是说这里其实可能是第二、三次进行sys模块的import,这里只是一个对sys的引用,只能reload才能进行重新加载;那么为什么要重 新加载,而直接引用过来则不能调用该函数呢?因为setdefaultencoding函数在被系统调用后被删除了,所以通过import引用进来时其实 已经没有了,所以必须reload一次sys模块,这样setdefaultencoding才会为可用,才能在代码里修改解释器当前的字符编码。
02.方法2- 全局设置
在Python的Lib\site-packages文件夹下新建一个sitecustomize.py文件(sitecustomize.py是一个特殊文件, Python 在启动时将尝试加载该文件,因此所有代码都将运行该文件),即可自动设置代码。
import sys
sys.setdefaultencoding('gb2312')
1.处理非ASCII编码
Python的默认编码是ascii编码,当python中间处理非ASCII编码时,经常会出现如下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的数字
我们常在文件开头加上编码属性:# -*- coding=utf8 -*-
所以无法处理其他编码时需要设置python的默认编码为所需要的编码,主要有以下2个方法:
01. 首选方法
import sys reload(sys)#重新加载sys
sys.setdefaultencoding('utf-8')#看你的编码需要utf-8还是gb2312
为什么要在调用setdefaultencoding时必须要先reload一次sys模块呢?因为这里的import语句其实并不是sys的第一次导入 语句,也就是说这里其实可能是第二、三次进行sys模块的import,这里只是一个对sys的引用,只能reload才能进行重新加载;那么为什么要重 新加载,而直接引用过来则不能调用该函数呢?因为setdefaultencoding函数在被系统调用后被删除了,所以通过import引用进来时其实 已经没有了,所以必须reload一次sys模块,这样setdefaultencoding才会为可用,才能在代码里修改解释器当前的字符编码。
02.方法2- 全局设置
在Python的Lib\site-packages文件夹下新建一个sitecustomize.py文件(sitecustomize.py是一个特殊文件, Python 在启动时将尝试加载该文件,因此所有代码都将运行该文件),即可自动设置代码。
import sys
sys.setdefaultencoding('gb2312')
0 0
- python编码问题
- python编码问题
- python编码问题
- Python编码问题
- python编码问题
- python 编码问题
- python的编码问题
- Python编码问题总结
- python 中文编码 问题
- Python 中文编码问题
- python编码问题总结
- Python 中文 编码问题
- python默认编码问题
- Python 编码问题整理
- python字符串编码问题
- python pyscripter编码问题
- python中文编码问题
- python 中文编码问题
- PHP网页乱码处理
- scala中的上界、下界、协变和逆变
- 在WAS6.0 ND中实现集群
- 地址邮编, 用CoreData实现插入/删除/查询(包含结果排序,模糊查询)
- 修改窗口属性
- python 编码问题
- 82. Remove Duplicates from Sorted List II My Submissions Question
- HTML5新控件 - 计量条<meter>
- Ugly Number--leetcode
- VC注册表文件关联,图标关联
- activity四种启动模式
- Weblogic、Tomcat、Oracle与Clob
- 2286: [Sdoi2011消耗战|树形DP|虚树
- 使用git的subtree将已有项目的某个目录分离成独立项目