‘utf-8‘ codec can‘t encode character ‘\udcc0‘ in position 35

 

'utf-8' codec can't encode character '\udcd5' in position 64

 

有一種原因是路徑中有中文亂碼。

'utf-8' codec can't encode character '\udcc0' in position 35

\udcd5 udcc0 是unicode 格式,都是中文的亂碼,

可以用在線unicode轉換查看:

https://www.bejson.com/convert/unicode_chinese/

 

 在爬蟲抓取網頁信息時常需要將類似"\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8"轉換爲中文,實際上這是unicode的中文編碼。可用以下方法轉換:

1、

1 >>> s = u'\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8'
2 >>> print s
3 人生苦短,py是岸

2、

1 >>> s = r'\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8'
2 >>> s = s.decode('unicode_escape')
3 >>> print s
4 人生苦短,py是岸

還有就是網上說的,路徑有斜槓,我的是第一種原因。

在網上看了一些基本上都是說文件的路徑的問題,不排除是因爲文件路徑的問題。windows下文件夾的路徑使用“\\”隔開,Linux中使用“/”,我簡單的理解爲windows下需要轉義一下,不能直接使用“/”;如果在windows中使用python的話,直接在文件路徑前面加“r”,那麼也可以直接使用“/”來隔開文件夾了。可是我的文件路徑都是英文路徑,仍然報這個錯誤。這也是很多新手都會犯的錯誤,將別人的模型拿過來直接用是有風險的。這裏就是我前面提到的,原因是我用的是CPU跑GPU訓練出來的模型。沒有辦法只有重新使用CPU訓練模型或者用GPU來跑這個模型。如果模型不是很大很複雜,CPU能扛得住的話,在學習階段建議還是可以跑一跑的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章