Windows環境のPythonでUTF-8のファイルを読み込むと、
UnicodeEncodeError: 'cp932' codec can't encode character '\xe2' in position 4703: illegal multibyte sequence
が発生します。それを修正します。
UnicodeEncodeErrorが発生する理由
windowsでファイルを扱うときのデフォルトの文字コードは、
cp932
この状態でutf-8のファイルを読み込むと、cp932で読み込もうとして、
UnicodeEncodeError
が発生します。
encodingで文字コードを指定する
これを修正するには、encodingで読み込むファイルの文字コードを指定します。
f_add = open(out_file + '.tmp', 'a', encoding='utf-8')
これで、Linux(Mac)とWindows で処理結果が同じになります。
bom付きutf-8を読み込む方法
bom付きutf-8を読み込むときは、
utf-8_sig
を使います。
bom付きutf-8は、エクセルなどで採用されているutf-8で、windows以外で使うことはありません。
Windowsで開発するとき、
文字コード: utf-8
改行コード: LF
にあらかじめ設定することをおススメします。
プログラムはマイクロソフト製のほうが特殊ですから。
そもそもMacを使えば? とも思います。しかし、会社のPCはWindowsが主流でエンドユーザがWindowsが多いので、ドキュメント作成、テストなどを考えるとそうなります。
エンドユーザさんって、Word・Excelなどマイクロソフト製品でドキュメント作成を求めるんですよね?
Macはコスト高になるからでしょう。フリーランスなどである程度余裕のある人は、Macを使うのが一番いいと思います。