Python: Windows環境でUTF-8のファイルを読み込む

  • -

    シェア
  • ---

    LINEで送る
  • -

    はてなブックマーク
    ブックマーク
  • -

    pocket
  • -

    rss
他言語サイト
翻訳はみつかりませんでした
python image
イラストACの画像をもとに加工しています。

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以外で使われることはほぼありません。

Pythonに限らず、Windows環境で開発する場合、文字コードは'utf-8'、改行コードは'LF'にあらかじめ設定しておくことをおすすめします。

どちらかというとマイクロソフト製のほうが特殊ですから。

そもそも、Macを使えばいいんじゃないか?ということもあります。しかし、会社所有PCはWindowsが主流です。これは、エンドユーザの主流がWindowsなので、ドキュメント作成、テスト等を考えるとそうなります。

エンドユーザさんってワード・エクセルなど、マイクロソフト製品でドキュメント作成を求めることが圧倒的に多いんですよね。

あとは、Macはコスト高になってしまうというのが一番の理由でしょう。フリーランスなどである程度余裕のある人は、Macを使うのが一番いいと思います。

 

最近ITカテゴリでよく読まれている記事です。
blog image

ドメイン取得の意味が分からない人へ。王道の方法を紹介します。

ドメインの登録業者を選ぶのに悩む必要はないです。サイトを簡単に早く公開するには全くいらないことで、むしろ邪魔です。『お名前.com』というサービスは必ず耳にします。そのお名前.comのメリットとデメリットと一緒に、ドメインの意味が分からない人が一番失敗しないドメインの取得方法を紹介します。

tadtadya.com

_

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

この記事を気に入ったらぜひシェアも!!