ご質問・お見積り等お気軽にご相談ください
お問い合わせ

Windowsの文字コード設定を強制的にutf-8に書き換える方法

Windowsの文字コード設定を強制的にutf-8に書き換える方法

Windowsの日本語文字コードはこれまでShift_JISで設定されていましたが、Windows10以降のOSではUTF-8を利用する設定(2023年11月現在のWindows11でもベータ機能)が可能になっています。

今回とあるPythonコード実行時のエラー解消のため設定を変更してみましたので記事にします。

※昨今の時代の流れとしてUTF-8化が進んでいますが、OS全体のロケールが変更されるので既存のプログラムが文字化けするなどのリスクがありますので自己責任で設定してみてください。

設定の経緯

pipでインストールしたモジュールを実行時に下記エラーが発生したため

UnicodeDecodeError: 'cp932' codec can't decode byte 0x** in position **: illegal multibyte sequence

どうやらPythonがopen()関数を実行した際に引数で文字コードの指定をしない場合WindowsのデフォルトであるShift-JISで実行するためutf-8のファイルを読み込んだ時に発生するエラーのようでWindows環境ではあるあるのエラーのようです。

解消方法としてコード実行前に強制的にUTF-8として読み込むようにハックする方法やPythonの環境変数を書き換える方法等あるようですが、今回はWindows自体のロケールを変更してしまうという強引な方法で解消してみました。

設定方法

設定は簡単でwindows環境での設定となりますが「設定->時計と言語->言語と地域->管理用言語の設定」を開きUnicode対応ではないプログラム言語のシステムロケールの変更を押したのち「ワールドワイド言語サポートでUnicode UTF-8を使用」をチェックして更新後Windowsを再起動します。

変更が多い様で私の環境では数回システムが再起動しました。

設定後はエラーとなったopen()関数でのエラーは解消できました、、、が前途の通り既存でShift-JISで正常に実行されていたコードが実行できなくなる可能性があるのでご注意を!
以上、Windowsの「ワールドワイド言語サポートでUnicode UTF-8を使用」の設定方法でした。

この記事を書いた人
yamashita
yamashita
株式会社ウェブネーションのウェブデザイナー兼フロントエンドエンジニアです。最近はAIチャットやAI画像生成の研究などもしています。