LoginSignup
40
32

More than 3 years have passed since last update.

【Windows】PythonでCP932(Shift-JIS)エンコード以外のファイルを開くとエラーになる問題がとりあえずの解決に至った件

Last updated at Posted at 2019-12-26

Windous環境においてPythonopen()関数を使用して日本語を含むファイルを開こうとすると以下のようなエラーが発生します。

UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 60: illegal multibyte sequence

参考にさせていただいた、こちらの記事でプログラムにエンコードを追加することでエラーを回避する方法をご教授して頂きました。
ただ、Pythonopen()関数を使用する箇所全てにエンコードを追加するのは辛い。
パッケージをインストールするたびにopen()関数を使用する箇所全てにエンコードを追加するのは辛い。
ということで、Pythonopen()関数にまとめてUTF-8エンコードを指定できないか調査をしました。
結果、Windows10の以下のバージョンから対応できることが分かったので手順を記載します。

バージョン

以下OSバージョンで動作することを確認しました。
バージョン:1709以前だと対象の機能が実装されていないので以下の手順は行えません。
バージョン:17091809の間のバージョンは検証できていません。
バージョン.png

手順

  1. コントロールパネルを開き、地域リンクを押下する。
    コントロールパネル.png

  2. 管理タブのシステムローケルの変更ボタンを押下する。
    地域.png

3.ワールドワイド言語サポートで Unicode UTF-8 を使用をチェックし、OKボタンを押下する。
システムローケル.png

4.システムの再起動を求められるので、再起動を行う。

結果

Windows10環境でパッケージcfn-lintを使用して日本語を含むファイルをチェックすることができました。

$ cfn-lint test.yaml
E0000 did not find expected key
test.yaml:2:3

おわりに

ワールドワイド言語サポートの機能ですが、画面キャプチャにもある通りベータの機能なので、使用することにより他の機能に影響がある可能性があります。
この記事を書いた時点ですべての影響範囲を検証できていません。
使用される方はご自身の責任の範囲にてお願いします。

40
32
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
32