Windowsのpythonでprint関数を使用すると、 UnicodeEncodeError: 'cp932' codec can't encode character が発生することがあります。
理由と対処法を以下に記します。
Pythonでは文字列はUTF-8で処理されます。
一方、Windowsでは標準出力へはCP932(シフトJISコード)で処理されます。
このため、CP932に変換出来ない文字コードに対しては、UnicodeEncodeError例外が発生するのです。
以下のようにしておくとCP932に存在しない文字は、'?'に置き換わるとともにエラーを回避できます。
b = a.encode('cp932', 'replace')
print(b.decode('cp932'))
下記のサイトにお世話になりました。ありがとうございます。
(Windows) Python3でのUnicodeEncodeErrorの原因と回避方法 - Qiita
https://qiita.com/butada/items/33db39ced989c2ebf644