linux安装python 默认编码问题

yy670010378 发布于 2016/04/07 13:57
阅读 217
收藏 0

各位大神大大,求解python系统默认编码为什么有的是ascii 有的是utf8,这是根据什么来得

>>> import sys

>>> sys.getdefaultencoding()

有的是'ascii' 有的是'utf8'

是不是和系统语言有关系 


加载中
0
Fly_f
Fly_f
跟python 版本有关吧。 python2.x 是用ascii  python 3.x 使用uft8
yy670010378
yy670010378
一台虚拟机是中文系统 一台是英文系统 不知道是不是系统原因
yy670010378
yy670010378
不是哈 我两个虚拟机都是2.7 获取的一个是utf8 一个是ascii
0
yy670010378
yy670010378
Set the current default string encoding used by the Unicode implementation. If name does not match any available encoding, LookupError is raised. This function is only intended to be used by the site module implementation and, where needed, by sitecustomize. Once used by the site module, it is removed from the sys module’s namespace.
它的作用是设置 str 和 unicode 转换时采用的默认编码,但你不应该依赖它,而应该调用 encode/decode,显式传入正确的编码。

顺带一提,site.py 里会将它初始化为 locale.getdefaultlocale()[1],在 OS X 上 是 UTF-8。如果值为空的话,会初始化为 ascii。
如果需要修改,可以创建一个 sitecustomize.py,它会在 site.py 执行时加载,可以调用 sys.setdefaultencoding 来修改编码。

作者:孙竟
链接:http://www.zhihu.com/question/28457442/answer/40893385
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
返回顶部
顶部