前言
爬蟲時,想將資料輸出到 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') |