我有以下 Python 脚本:
# -*- coding: utf-8 -*-
import sys, locale
locale.setlocale(locale.LC_ALL, 'en_US.utf8')
print '肥皂' # This works
print u'肥皂'
运行脚本时,我得到:
肥皂
Traceback (most recent call last):
File "../pycli/samples/x.py", line 5, in <module>
print u'肥皂'
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256)
但是,当我在 shell 中明确设置 LC_ALL 环境变量时,它就可以工作了
export LC_ALL=en_US.utf8
所以我想知道为什么 setlocale() 没有相同的效果?