Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@vh5150

Windowsの文字コードでハマった場合の対処方法

はじめに

Windowsで日本語を含むパスを処理しているときにエラーが発生した。
文字コードはShift-JISを指定しているハズなのに、UnicodeDecodeErrorが発生。

WindowsってShift-JISじゃなかったのか?

対応方法

調べてみると、「WindowsはShift-JISを拡張したCP932」だとのこと。
なので、文字コードをCP932に指定したらすんなり動いた。

サンプルコード

cp932_test.py
# -*- coding: utf-8 -*-

s = '①②③④'  # Shift-JISにはなく、CP932にある文字
su = unicode(s, 'utf-8')
print su.encode('cp932')
print su.encode('shift-jis')    # UnicodeEncodeErrorになる

おわりに

WindowsのShift-JISは「CP932」ということを認識しましょう。
でないと、ドハマりしてしまいます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
10
Help us understand the problem. What are the problem?