论坛首页 编程语言技术论坛

PYTHON设置默认语言编码

浏览 14498 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-04  

原帖: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()

   发表时间:2010-01-08  
为什么不用unicode?临时解决一下问题无所谓,不然还是用unicode吧!
0 请登录后投票
   发表时间:2010-01-10  
直接在py文件第一行加入 # # -*- coding: utf-8 -*-  或者不是utf-8其他编码不行吗?
0 请登录后投票
   发表时间:2010-01-11   最后修改:2010-01-18
乌拉蕾 写道
直接在py文件第一行加入
# # -*- coding: utf-8 -*-
  或者不是utf-8其他编码不行吗?

这种方式是声明源码文件采用utf-8编码,当你用不带encoding参数的decode,encode方法时,取得的默认编码和
# # -*- coding: utf-8 -*-
没有关系
0 请登录后投票
   发表时间:2010-01-11  
ablmf 写道
为什么不用unicode?临时解决一下问题无所谓,不然还是用unicode吧!

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

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

to gmizr:
“听说mac下默认是utf-8,其他环境是ascii”,记下了~3Q
0 请登录后投票
   发表时间:2010-01-13  
条件允许的情况下换用python3k也可以哦
0 请登录后投票
   发表时间:2010-01-13  
jy00509336 写道

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

我mac下试了一下,也是ascii
0 请登录后投票
   发表时间:2010-01-13  
在开发环境下(eclipse+pydev)下是UTF-8,
这是为什么呢
0 请登录后投票
   发表时间:2010-01-15  
tedeyang 写道
条件允许的情况下换用python3k也可以哦

3x默认就是utf-8么?
0 请登录后投票
   发表时间: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.

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics