鑑於從Python解釋器下面的代碼運行:Python中的Unicode工作在2.6.1上OSX,而不是在2.6.5在Ubuntu
import sys
sys.getdefaultencoding()
my_string = '\xc3\xa9'
my_string = unicode(my_string, 'utf-8')
my_string
print my_string
使用Python 2.6.1在Mac上,一切正常運行精細:
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> my_string = '\xc3\xa9'
>>> my_string = unicode(my_string, 'utf-8')
>>> my_string
u'\xe9'
>>> print my_string
é
>>>
使用Python 2.6.5在Ubuntu 10.04 LTS運行,它失敗:
$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> my_string = '\xc3\xa9'
>>> my_string = unicode(my_string, 'utf-8')
>>> my_string
u'\xe9'
>>> print my_string
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128)
>>>
有事PY之間變化thon 2.6.1和2.6.5需要不同的unicode字符串處理?或者這是否與我的(默認Ubuntu服務器10.04 LTS)Linux環境中配置錯誤有關?
編輯:兩種環境有LANG =的en_US.UTF-8
有趣的故事,雖然問題是關於`Python Unicorn` – 2011-01-29 02:44:41
你在Ubuntu下使用什麼終端模擬器? – unutbu 2011-01-29 03:58:34
我不確定。我在我的Mac中從終端使用ssh。服務器是無人的,運行在Rackspace上,我用最少的東西安裝它(基本上是apache和pylons)。 – Karl 2011-01-29 16:28:31