我已經嘗試了所有以前的答案和解決方案。'ascii'編解碼器無法編碼字符u' xe9'
我想使用這個值,這給了我編碼相關的錯誤。
ar = [u'http://dbpedia.org/resource/Anne_Hathaway', u'http://dbpedia.org/resource/Jodie_Bain', u'http://dbpedia.org/resource/Wendy_Divine', u'http://dbpedia.org/resource/Jos\xe9_El\xedas_Moreno', u'http://dbpedia.org/resource/Baaba_Maal']
所以,我想,
d = [x.decode('utf-8') for x in ar]
這給:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 31: ordinal not in range(128)
我嘗試了
d = [x.encode('utf-8') for x in ar]
從而消除錯誤,但改變了原來的內容
原值爲u'http://dbpedia.org/resource/Jos\xe9_El\xedas_Moreno'
其轉化爲'http://dbpedia.org/resource/Jos\xc3\xa9_El\xc3\xadas_Moreno'
同時使用encode
什麼是對付這種情況下正確的方法是什麼?
編輯
錯誤是當我在
req = urllib2.Request()
[UnicodeEncodeError:'ascii'編解碼器無法在位置20編碼字符u'\ xa0':序號不在範圍內(128)]的可能重複(http://stackoverflow.com/questions/9942594/unicodeencodeerror- ascii-codec -cant-encode-character -u-xa0-in-position-20) – sirfz
你想對數據做什麼? ASCII編碼不支持這些字符。這就是爲什麼我們編碼如uff-8。如果您計劃在野外使用此應用程序,我強烈建議您跳過ASCII碼。 –
如果你已經有unicode字符串,那麼你不想把它們解碼成unicode字符串。 :-)您可能想要與需要非Unicode字符串的內容進行交互,這意味着通過encode()將其放入可接受的編碼中。現在,通常是UTF-8,但這取決於你想要做什麼以及與之交互的服務。 – jszakmeister