エラー解決

【PyCharm】pycharm LookupError: unknown encoding: windows-31jエラーや文字化けが発生する

【PyCharm】pycharm LookupError unknown encoding windows-31jエラーの解決方法

この記事では、PyCharmにおける特定のエラーについての状況とその解決策の一つをご紹介します。

急に文字化けしてエラーがでるようになった!という状況。

もしも同じ状況で困っている方がいらっしゃいましたら、参考になれば幸いです。

状況について

PyCharmを使っていて、ある日突然、

Fatal Python error: init_stdio_encoding: failed to get the Python codec name of the stdio encoding
Python runtime state: core initialized
LookupError: unknown encoding: windows-31j

Current thread 0x00002bd0 (most recent call first):
<no Python frame>

というエラーが出てしまい、ファイルが実行できなくなりました。

エラーの内容

さらに、日本語表記のテキストファイルなどが文字化けするようになってしまいました。

日本語表記のテキストファイルなどが文字化けするようになった実例

しかし、メモ帳などのテキストエディタでファイルを開くと問題ありません。

テキストエディタで開いたら問題がない証拠

文字コードの問題だということは理解していますが、PyCharmの右下の設定を確認しても「UTF-8」となっているので問題ないはず。

pycharmのencodingがUTF-8になっている状況

原因によって解決策は異なると思いますが、一つの解決策としてご覧ください。

エラーの解決策①「encodingの記述」

開発環境に関係なく、スクリプト内で解決する方法があります。

今回、with openでファイルを指定してログを記録していたのですが、引数内にエンコードを指定することができます。

解決策として、with openの引数にencodingを指定する図

これによって、以降に実行したログは日本語でもエラーが出ませんでした。

対策後は文字化けしない証拠

おそらく、この方法が一番間違いなく確実だと思います。

ただし、これ以前に実行したログは文字化けしたままです。

エラーの解決策②「PyCharmの設定」

今度は開発環境(PyCharm)の設定を確認します。

右上の file → settings 、または ctrl + alt + sキー で設定画面を出し、左側「Editor」内の「File Encodings」を開くとエンコードの設定を表示できます。

pycharmの設定でencodingをUTF-8に設定する図

ここで<System Default: windows-31j>のところを「UTF-8」に変更。

またファイルやプロジェクトごとに設定されている場合はこれを削除すればOK。

(一覧から選択して「-」をクリック)

ただし、ログを記録するスクリプト内に上記①のエンコード指定を記述しなければ根本的な解決にはなりません。

この記事で解決できないこと

上記はあくまで「これから記録する文字」に対する設定を変更したにすぎません。

これ以前に実行した結果(ログ)は文字化けしたままになります。

まとめ

これでも解決しないという場合、フォームかコメントでお知らせください。

当ブログでは、エラー解決方法も積極的に記事にしています。

今後もPythonを中心としたプログラミングの情報をお届けします。

Pythonの演習はこちら ▶

以下のメルマガにご登録頂くと、不定期に配信をお届けします。

ぜひ購読してください!

それでは、ステキなPythonライフを!

Pythonについて詳しく知りたいという方は、こちらの書籍もおススメです。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 最近ではPythonを用いたアプリ開発、ウェブアプリケーションの開発と運営に没頭。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です