2010-05-06 10 views
2

例如以下內容: str(u'לשום') 將引發錯誤。 我該如何預防這些?爲什麼在python中給str函數一個unicode字符串會拋出異常?

+0

它在我的Python 2.6.5上正常工作。你正在使用哪個版本? – 2010-05-06 10:44:42

+3

它引發錯誤?錯誤說的是什麼? – SilentGhost 2010-05-06 10:45:39

+0

在python2.4 +中正常工作,所以你使用什麼版本的python?向我們展示一些真實代碼 – SilentGhost 2010-05-06 10:47:03

回答

7

unicode上調用str()與調用.encode(sys.getdefaultencoding())相同。如果unicode包含不能使用默認編碼進行編碼的字符,則會拋出UnicodeEncodeError。解決方法是使用有用的編碼將unicode進行明確編碼,例如'utf-8'

+0

這裏明確指出:u'לשום'。encode('utf-8') – rbp 2013-08-07 12:13:44

0

如果您在Python 3上運行,u''表示法是一個語法錯誤。這是你的問題嗎?因爲在Python < 3中,你的代碼是絕對正確的,並且由於'test'是純ASCII,所以沒有解碼問題。

相關問題