「charmap」編解碼器的Unicode 編碼錯誤
嘗試列印透過Python 3.3 中的POST 方法存取的網頁的回應時,在Windows 控制台中可能會遇到UnicodeEncodeError。發生這種情況是因為控制台的預設代碼頁 CP-850 不支援某些 Unicode 字符,例如破折號 (U 2014)。
穩健編碼解決方案
為了防止此錯誤並確保穩健的編碼(無論輸出介面編碼如何),請考慮以下事項解決方案:
全域編碼重設:程式啟動時全域重設輸出編碼。這可以確保任何後續輸出都將被正確編碼,無論預設控制台設定如何。有關 Python 2 和 Python 3,請參考下面提供的程式碼片段:
Python 2:
if sys.stdout.encoding != 'cp850': sys.stdout = codecs.getwriter('cp850')(sys.stdout, 'strict') if sys.stderr.encoding != 'cp850': sys.stderr = codecs.getwriter('cp850')(sys.stderr, 'strict')
Python 3:
if sys.stdout.encoding != 'cp850': sys.stdout = codecs.getwriter('cp850')(sys.stdout.buffer, 'strict') if sys.stderr.encoding != 'cp850': sys.stderr = codecs.getwriter('cp850')(sys.stderr.buffer, 'strict')
以上是在Python 3.3中列印網頁回應時如何解決UnicodeEncodeError?的詳細內容。更多資訊請關注PHP中文網其他相關文章!