`
jy00509336
  • 浏览: 243976 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

PYTHON设置默认语言编码

阅读更多

原帖:http://www.cnblogs.com/jingleguo/archive/2008/06/02/1211820.html

当python中间处理非ASCII编码时,经常会出现如下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的数字,python在默认的情况下认为语言的编码是ascii编码,所以无法处理其他编码,需要设置python的默认编码为所需要的编码。
一个解决的方案是在代码中添加:

import sys

reload(sys)
sys.setdefaultencoding('gb2312')
另一个方案是在python的Lib\site-packages文件夹下新建一个sitecustomize.py
文件(sitecustomize.py is a special script; Python will try to import it on startup, so any code in it will be run automatically.),输入:
import sys
sys.setdefaultencoding('gb2312')
这样就能够自动的设置编码了。
ps:
1. utf8的编码是:utf-8

2. 测试已经成功的方法:
>>> import sys
>>> sys.getdefaultencoding()

分享到:
评论
10 楼 jy00509336 2010-01-21  
默认是什么的一般项目中总会出点问题,还是老老实实的设定好编码,不然移植到其他平台就不一定什么样子了。
9 楼 gmizr 2010-01-18  
chinalu 写道
jy00509336 写道

to gmizr:
“听说mac下默认是utf-8,其他环境是ascii”,记下了~3Q

我mac下试了一下,也是ascii


中午看了一下Unicode HOWTO,确实都是ASCII,包括mac

http://docs.python.org/howto/unicode.html 写道

Python’s default encoding is the ‘ascii’ encoding.

8 楼 alswl 2010-01-15  
tedeyang 写道
条件允许的情况下换用python3k也可以哦

3x默认就是utf-8么?
7 楼 chinalu 2010-01-13  
在开发环境下(eclipse+pydev)下是UTF-8,
这是为什么呢
6 楼 chinalu 2010-01-13  
jy00509336 写道

to gmizr:
“听说mac下默认是utf-8,其他环境是ascii”,记下了~3Q

我mac下试了一下,也是ascii
5 楼 tedeyang 2010-01-13  
条件允许的情况下换用python3k也可以哦
4 楼 jy00509336 2010-01-11  
ablmf 写道
为什么不用unicode?临时解决一下问题无所谓,不然还是用unicode吧!

这个文章是转载的~~没改原文章内容,将文章中的gb2312改成utf-8即可。
乌拉蕾 写道
直接在py文件第一行加入 # # -*- coding: utf-8 -*-  或者不是utf-8其他编码不行吗?

这个是文件的编码方式,就好比txt文件右下方显示的文件编码方式一样。

to gmizr:
“听说mac下默认是utf-8,其他环境是ascii”,记下了~3Q
3 楼 gmizr 2010-01-11  
乌拉蕾 写道
直接在py文件第一行加入
# # -*- coding: utf-8 -*-
  或者不是utf-8其他编码不行吗?

这种方式是声明源码文件采用utf-8编码,当你用不带encoding参数的decode,encode方法时,取得的默认编码和
# # -*- coding: utf-8 -*-
没有关系
2 楼 乌拉蕾 2010-01-10  
直接在py文件第一行加入 # # -*- coding: utf-8 -*-  或者不是utf-8其他编码不行吗?
1 楼 ablmf 2010-01-08  
为什么不用unicode?临时解决一下问题无所谓,不然还是用unicode吧!

相关推荐

Global site tag (gtag.js) - Google Analytics