2013-04-23 51 views
3

我有一個列表L = [u'steve', u'micheal', u'pedro\xae']逃生用「西航」元素的列表並打印結果

,當我試圖讀它,我得到了一個錯誤,我相信它有什麼做的「\ xae'

>>> L = [u'steve', u'micheal', u'pedro\xae'] 
>>> 
>>> for n in L: 
...  print n 
... 
steve 
micheal 
Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xae' in position 5: ordinal not in range(128) 
>>> 

任何想法如何逃避caracter?

期望這樣的讀數將是非常簡單的輸出是:

L= ['steve', 'micheal', 'pedro'] 

謝謝!

+4

請參閱http://wiki.python.org/moin/PrintFails – 2013-04-23 21:37:45

+0

謝謝Martijn! @Martinho!我相信你正在使用XP或Vista操作系統。它不適用於我的ubunto機器。非常感謝你!! – mongotop 2013-04-23 21:41:51

+1

@mongotop:在你的Ubuntu機器上,'echo $ LC_CTYPE','echo $ LANG'和'locale'說什麼?你有什麼Ubuntu版本?因爲我認爲至少最近的版本會總是給你一個utf8的語言環境(當然,除非你自己去改變它)。 [本頁](https://help.ubuntu.com/community/Locale)看起來像我可能會有用。 (我剛剛在google中找到它,並將其剔除,如果它沒有用,請致歉) – abarnert 2013-04-23 21:57:26

回答

6

一個廉價的解決方案

print n.encode('ascii','backslashreplace') 

print n.encode('ascii','ignore') 

,但更好看的Martijn Pieters的鏈接並解決編碼...或者你可能會在你的程序有更多的問題在其他地方

+0

非常感謝Jortan的鐘聲!我得到了同樣的錯誤:' 回溯(最近呼叫最後): 文件「」,第2行,在 UnicodeEncodeError:'ascii'編解碼器無法編碼字符u'\ xae'在位置5:序號不是在範圍內(128) ' – mongotop 2013-04-23 22:09:20

+1

編輯它...我總是得到編碼/解碼開關:P – 2013-04-23 22:22:50

+0

像親一樣工作!!!!!非常感謝你!!!!!!! – mongotop 2013-04-23 22:25:49