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