簡單紀錄一下 docode
>>> a = "你好" >>> a.encode("utf-8").decode("utf-8", "ignore")
decode 的函數原型是 decode([encoding], [errors='strict'])
透過第二個參數控制錯誤處理。 預設的參數是 strict,代表遇到非法字符時就會拋出異常。
- 如果設為 "ignore",則會忽略非法字符
- 如果設為 "replace",則會用 ? 取代非法字符
- 如果設為 "xmlcharrefreplace",則會使用 XML 的 字符引用 。
不知道為什麼, 在抓網頁的時候, 特別容易遇到不得不使用設定 errors 來避開非法字符。
參考
- python字符串decode中遇到非法字符的问题
- http://www.haogongju.net/art/638257
- Python print编码转变默认编码
- http://developer.51cto.com/art/201003/188233.htm
- [Python]-字串編碼錯誤UnicodeDecodeError
- http://www.dotblogs.com.tw/chris0920/archive/2010/10/22/18513.aspx