0%

[Python] 爬蟲遇到 'cp950' codec can't encode ?

前言

爬蟲時,想將資料輸出到 txt 檔案遇到 cp950 等錯誤資訊,是甚麼原因?該怎麼辦?讓我來告訴你。

問題原因

遇到過類似下面的錯誤訊息嗎?

1
UnicodeEncodeError: 'cp950' codec can't encode character '\u67b1' in position 20: illegal multibyte sequence

這主要原因為某個字元不是 code page 950 (cp950) 內有的字,而無法編碼寫進檔案裡面。

Python 處理字串預設是 Unicode 編碼,而在存檔案時,Python 會檢查命令提示字元的編碼頁 (此為 cp950) 做為檔案輸出的預設編碼頁,因此會需要將 Unicode 字串皆轉為 cp950,若此時有字不在 cp950 內的話,就會出現此錯誤訊息。

解決方法

修改 Python 程式,在 open 檔案時多一個輸入參數,讓讀寫檔案的編碼方式為 UTF-8

1
open('text.txt', 'w', encoding='UTF-8')
很高興能在這裡幫助到您,歡迎登入 Liker 為我鼓掌 5 次,或者成為我的讚賞公民,鼓勵我繼續創造優質文章。
以最優質的內容回應您的鼓勵