我有以下Python脚本:为什么不设置语言环境修复此UnicodeError?
# -*- 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)
然而,当我明确地设置LC_ALL环境变量的外壳,然后它工作
export LC_ALL=en_US.utf8
所以我想知道为什么不setlocale()有相同的效果?
你试过'en_US.utf-8'吗? – 2012-08-03 17:36:20
是的,我试过,但结果相同 – trinth 2012-08-03 17:40:51
你试过.encode('utf-8')你的输出吗? – 2012-08-03 17:56:04